Mercurial > dwindows
annotate android/DWindows.kt @ 2843:bacac2eb1677
Android: Fix container rows not being selectable in DW_CONTAINER_MODE_MULTI
mode. Due to the addition of buttons in multi-line mode, them taking focus
prevents interaction with the row they are contained in. So we block
descendant focus on the stack (LinearLayout) they are contained in.
https://issuetracker.google.com/issues/36908602
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Fri, 16 Sep 2022 20:23:25 +0000 |
parents | 22dd09e90112 |
children | 64c528d38fb8 |
rev | line source |
---|---|
2751
ee1cfa7d645e
Update copyright dates for the new year 2022.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2736
diff
changeset
|
1 // (C) 2021-2022 Brian Smith <brian@dbsoft.org> |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
2 // (C) 2019 Anton Popov (Color Picker) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
3 // (C) 2022 Amr Hesham (Tree View) |
2484
cb5b67154399
Android: The DWindows class should be org.dbsoft.dwindows, remove dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2483
diff
changeset
|
4 package org.dbsoft.dwindows |
2473
aa420e366b2b
Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5 |
2788
8a4f162810c2
Android: During dw_file_browse() request read/write access to external
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2785
diff
changeset
|
6 import android.Manifest |
2526
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
7 import android.R |
2608
a11522c30345
Android: Add initial code to handle button presses and long clicks on DWRender.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2607
diff
changeset
|
8 import android.annotation.SuppressLint |
2526
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
9 import android.app.Activity |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
10 import android.app.Dialog |
2522
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
11 import android.app.NotificationChannel |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
12 import android.app.NotificationManager |
2594
2c15b3d41fe4
Android: Add preliminary new file browser that uses the system ACTION_GET_CONTENT Intent.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2590
diff
changeset
|
13 import android.content.* |
2480
878d36588aaa
Android: Enable app rotation and fix some issues with layout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2479
diff
changeset
|
14 import android.content.pm.ActivityInfo |
2496
3bf2f08fdc45
Android: Remove ugly workaround for initialization issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2495
diff
changeset
|
15 import android.content.res.Configuration |
2643
28ca1e59e76f
Android: Catch NotFoundException when loading resource...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2642
diff
changeset
|
16 import android.content.res.Resources |
2594
2c15b3d41fe4
Android: Add preliminary new file browser that uses the system ACTION_GET_CONTENT Intent.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2590
diff
changeset
|
17 import android.database.Cursor |
2531
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
18 import android.graphics.* |
2530
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
19 import android.graphics.drawable.BitmapDrawable |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
20 import android.graphics.drawable.Drawable |
2490
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
21 import android.graphics.drawable.GradientDrawable |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
22 import android.graphics.pdf.PdfDocument |
2490
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
23 import android.media.AudioManager |
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
24 import android.media.ToneGenerator |
2594
2c15b3d41fe4
Android: Add preliminary new file browser that uses the system ACTION_GET_CONTENT Intent.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2590
diff
changeset
|
25 import android.net.Uri |
2522
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
26 import android.os.* |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
27 import android.print.* |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
28 import android.print.pdf.PrintedPdfDocument |
2594
2c15b3d41fe4
Android: Add preliminary new file browser that uses the system ACTION_GET_CONTENT Intent.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2590
diff
changeset
|
29 import android.provider.DocumentsContract |
2c15b3d41fe4
Android: Add preliminary new file browser that uses the system ACTION_GET_CONTENT Intent.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2590
diff
changeset
|
30 import android.provider.MediaStore |
2790
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
31 import android.system.OsConstants |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
32 import android.text.InputFilter |
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
33 import android.text.InputFilter.LengthFilter |
2510
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
34 import android.text.InputType |
2833
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
35 import android.text.format.DateFormat |
2476
20c9e83cba2a
Android: Implement dw_entryfield_new, dw_entryfield_password_new() dw_button_new(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2475
diff
changeset
|
36 import android.text.method.PasswordTransformationMethod |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
37 import android.util.* |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
38 import android.util.Base64 |
2543
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
39 import android.view.* |
2515
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
40 import android.view.View.OnTouchListener |
2510
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
41 import android.view.inputmethod.EditorInfo |
2501
41984ffb5ca2
Android: Initial implement of HTML control with WebView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2500
diff
changeset
|
42 import android.webkit.WebView |
2505
a149dabf6a1f
Android: HTML touchups, implement DW_SIGNAL_HTML_CHANGED: STARTED and COMPLETE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2503
diff
changeset
|
43 import android.webkit.WebViewClient |
2476
20c9e83cba2a
Android: Implement dw_entryfield_new, dw_entryfield_password_new() dw_button_new(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2475
diff
changeset
|
44 import android.widget.* |
2515
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
45 import android.widget.AdapterView.OnItemClickListener |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
46 import android.widget.SeekBar.OnSeekBarChangeListener |
2486
cec43818bd3e
Android: Implement dw_messagebox() ... seems we can't just cleanly exit().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2484
diff
changeset
|
47 import androidx.appcompat.app.AlertDialog |
2474
a13e6db064f4
Android: Implement thread, semaphore, shared memory API functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2473
diff
changeset
|
48 import androidx.appcompat.app.AppCompatActivity |
2515
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
49 import androidx.appcompat.widget.AppCompatEditText |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
50 import androidx.collection.SimpleArrayMap |
2650
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
51 import androidx.constraintlayout.widget.ConstraintLayout |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
52 import androidx.constraintlayout.widget.ConstraintSet |
2675
a7868380098f
Android: LinearLayout does not allow null views, if null, create a Placeholder view.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2670
diff
changeset
|
53 import androidx.constraintlayout.widget.Placeholder |
2522
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
54 import androidx.core.app.NotificationCompat |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
55 import androidx.core.app.NotificationManagerCompat |
2788
8a4f162810c2
Android: During dw_file_browse() request read/write access to external
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2785
diff
changeset
|
56 import androidx.core.content.ContextCompat |
2530
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
57 import androidx.core.content.res.ResourcesCompat |
2544
dbfcc0e357d6
Android: Clean up the menus... add separator, remove tildes and implement callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2543
diff
changeset
|
58 import androidx.core.view.MenuCompat |
2842
22dd09e90112
Android: Improve appearance of the container row by adding a 4 point margin.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2841
diff
changeset
|
59 import androidx.core.view.setMargins |
2782
dff8fb5ddadd
Android: Added layout manager and code to trigger data change updates.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2781
diff
changeset
|
60 import androidx.recyclerview.widget.LinearLayoutManager |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
61 import androidx.recyclerview.widget.RecyclerView |
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
62 import androidx.viewpager2.widget.ViewPager2 |
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
63 import com.google.android.material.tabs.TabLayout |
2495
5664c91d03fb
Android: Attempts to sort out the various issues... still not working but...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2494
diff
changeset
|
64 import com.google.android.material.tabs.TabLayout.OnTabSelectedListener |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
65 import com.google.android.material.tabs.TabLayoutMediator |
2790
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
66 import java.io.* |
2833
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
67 import java.text.ParseException |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
68 import java.text.SimpleDateFormat |
2490
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
69 import java.util.* |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
70 import java.util.concurrent.locks.ReentrantLock |
2658
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
71 import java.util.zip.ZipEntry |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
72 import java.util.zip.ZipFile |
2713
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
73 import kotlin.math.* |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
74 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
75 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
76 // Tree View section |
2777
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
77 class DWTreeItem(title: String, icon: Drawable?, data: Long, parent: DWTreeItem?) { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
78 private var title: String |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
79 private var parent: DWTreeItem? |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
80 private val children: LinkedList<DWTreeItem> |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
81 private var level: Int |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
82 private var isExpanded: Boolean |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
83 private var isSelected: Boolean |
2777
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
84 private var data: Long = 0 |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
85 private var icon: Drawable? = null |
2776
858155527b05
Android: Minor tree changes... mostly testing my system to push changes to GitHub.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2775
diff
changeset
|
86 |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
87 fun addChild(child: DWTreeItem) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
88 child.setParent(this) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
89 child.setLevel(level + 1) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
90 children.add(child) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
91 updateNodeChildrenDepth(child) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
92 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
93 |
2777
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
94 fun setTitle(title: String) { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
95 this.title = title |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
96 } |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
97 |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
98 fun getTitle(): String { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
99 return title |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
100 } |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
101 |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
102 fun setIcon(icon: Drawable?) { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
103 this.icon = icon |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
104 } |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
105 |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
106 fun getIcon(): Drawable? { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
107 return icon |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
108 } |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
109 |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
110 fun setData(data: Long) { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
111 this.data = data |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
112 } |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
113 |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
114 fun getData(): Long { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
115 return data |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
116 } |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
117 |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
118 fun getParent(): DWTreeItem? { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
119 return parent |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
120 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
121 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
122 fun setParent(parent: DWTreeItem?) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
123 this.parent = parent |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
124 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
125 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
126 fun getChildren(): LinkedList<DWTreeItem> { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
127 return children |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
128 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
129 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
130 fun setLevel(level: Int) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
131 this.level = level |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
132 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
133 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
134 fun getLevel(): Int { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
135 return level |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
136 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
137 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
138 fun setExpanded(expanded: Boolean) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
139 isExpanded = expanded |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
140 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
141 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
142 fun isExpanded(): Boolean { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
143 return isExpanded |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
144 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
145 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
146 fun setSelected(selected: Boolean) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
147 isSelected = selected |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
148 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
149 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
150 fun isSelected(): Boolean { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
151 return isSelected |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
152 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
153 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
154 private fun updateNodeChildrenDepth(node: DWTreeItem) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
155 if (node.getChildren().isEmpty()) return |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
156 for (child in node.getChildren()) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
157 child.setLevel(node.getLevel() + 1) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
158 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
159 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
160 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
161 init { |
2777
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
162 this.title = title |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
163 this.icon = icon |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
164 this.data = data |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
165 this.parent = parent |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
166 children = LinkedList() |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
167 level = 0 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
168 isExpanded = false |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
169 isSelected = false |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
170 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
171 } |
2777
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
172 |
2785
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
173 class DWTreeItemView : LinearLayout, Checkable { |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
174 private var mChecked = false |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
175 private var colorSelection = Color.DKGRAY |
2781
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
176 var expandCollapseView: ImageView = ImageView(context) |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
177 var iconView: ImageView = ImageView(context) |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
178 var textView: TextView = TextView(context) |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
179 |
2785
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
180 fun updateBackground() { |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
181 if(mChecked) { |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
182 this.setBackgroundColor(colorSelection) |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
183 } else { |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
184 this.setBackgroundColor(Color.TRANSPARENT) |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
185 } |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
186 } |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
187 |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
188 override fun setChecked(b: Boolean) { |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
189 mChecked = b |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
190 updateBackground() |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
191 } |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
192 |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
193 override fun isChecked(): Boolean { |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
194 return mChecked |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
195 } |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
196 |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
197 override fun toggle() { |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
198 mChecked = !mChecked |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
199 updateBackground() |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
200 } |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
201 |
2781
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
202 fun setup(context: Context?) { |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
203 var params = LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT) |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
204 this.orientation = LinearLayout.HORIZONTAL |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
205 params.gravity = Gravity.CENTER |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
206 expandCollapseView.layoutParams = params |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
207 expandCollapseView.id = View.generateViewId() |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
208 this.addView(expandCollapseView) |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
209 iconView.layoutParams = params |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
210 iconView.id = View.generateViewId() |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
211 this.addView(iconView) |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
212 params = LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT) |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
213 params.gravity = Gravity.CENTER |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
214 textView.layoutParams = params |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
215 textView.id = View.generateViewId() |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
216 this.addView(textView) |
2785
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
217 colorSelection = context?.let { getPlatformSelectionColor(it) }!! |
2781
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
218 } |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
219 |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
220 constructor(context: Context?) : super(context) { |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
221 setup(context) |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
222 } |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
223 constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) { |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
224 setup(context) |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
225 } |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
226 constructor(context: Context?, attrs: AttributeSet?, defStyle: Int) : super(context, attrs, defStyle) { |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
227 setup(context) |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
228 } |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
229 } |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
230 |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
231 class DWTreeItemManager { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
232 // Collection to save the current tree nodes |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
233 private val rootsNodes: LinkedList<DWTreeItem> |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
234 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
235 // Get DWTreeItem from the current nodes by index |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
236 // @param index of node to get it |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
237 // @return DWTreeItem from by index from current tree nodes if exists |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
238 operator fun get(index: Int): DWTreeItem { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
239 return rootsNodes[index] |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
240 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
241 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
242 // Add new node to the current tree nodes |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
243 // @param node to add it to the current tree nodes |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
244 // @return true of this node is added |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
245 fun addItem(node: DWTreeItem): Boolean { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
246 return rootsNodes.add(node) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
247 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
248 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
249 // Clear the current nodes and insert new nodes |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
250 // @param newNodes to update the current nodes with them |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
251 fun updateItems(newNodes: List<DWTreeItem>?) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
252 rootsNodes.clear() |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
253 rootsNodes.addAll(newNodes!!) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
254 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
255 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
256 // Delete one node from the visible nodes |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
257 // @param node to delete it from the current nodes |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
258 // @return true of this node is deleted |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
259 fun removeItem(node: DWTreeItem): Boolean { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
260 return rootsNodes.remove(node) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
261 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
262 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
263 // Clear the current nodes |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
264 fun clearItems() { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
265 rootsNodes.clear() |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
266 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
267 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
268 // Get the current number of visible nodes |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
269 // @return the size of visible nodes |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
270 fun size(): Int { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
271 return rootsNodes.size |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
272 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
273 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
274 // Collapsing node and all of his children |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
275 // @param node The node to collapse it |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
276 // @return the index of this node if it exists in the list |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
277 fun collapseItem(node: DWTreeItem): Int { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
278 val position = rootsNodes.indexOf(node) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
279 if (position != -1 && node.isExpanded()) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
280 node.setExpanded(false) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
281 val deletedParents: LinkedList<DWTreeItem> = |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
282 LinkedList(node.getChildren()) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
283 rootsNodes.removeAll(node.getChildren()) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
284 for (i in position + 1 until rootsNodes.size) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
285 val iNode: DWTreeItem = rootsNodes[i] |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
286 if (deletedParents.contains(iNode.getParent())) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
287 deletedParents.add(iNode) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
288 deletedParents.addAll(iNode.getChildren()) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
289 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
290 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
291 rootsNodes.removeAll(deletedParents) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
292 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
293 return position |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
294 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
295 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
296 // Expanding node and all of his children |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
297 // @param node The node to expand it |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
298 // @return the index of this node if it exists in the list |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
299 fun expandItem(node: DWTreeItem): Int { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
300 val position = rootsNodes.indexOf(node) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
301 if (position != -1 && !node.isExpanded()) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
302 node.setExpanded(true) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
303 rootsNodes.addAll(position + 1, node.getChildren()) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
304 for (child in node.getChildren()) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
305 if (child.isExpanded()) updateExpandedItemChildren(child) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
306 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
307 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
308 return position |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
309 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
310 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
311 // Update the list for expanded node |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
312 // to expand any child of his children that is already expanded before |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
313 // @param node that just expanded now |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
314 private fun updateExpandedItemChildren(node: DWTreeItem) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
315 val position = rootsNodes.indexOf(node) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
316 if (position != -1 && node.isExpanded()) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
317 rootsNodes.addAll(position + 1, node.getChildren()) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
318 for (child in node.getChildren()) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
319 if (child.isExpanded()) updateExpandedItemChildren(child) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
320 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
321 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
322 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
323 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
324 // @param node The node to collapse the branch of it |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
325 // @return the index of this node if it exists in the list |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
326 fun collapseItemBranch(node: DWTreeItem): Int { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
327 val position = rootsNodes.indexOf(node) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
328 if (position != -1 && node.isExpanded()) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
329 node.setExpanded(false) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
330 for (child in node.getChildren()) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
331 if (!child.getChildren().isEmpty()) collapseItemBranch(child) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
332 rootsNodes.remove(child) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
333 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
334 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
335 return position |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
336 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
337 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
338 // Expanding node full branches |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
339 // @param node The node to expand the branch of it |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
340 // @return the index of this node if it exists in the list |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
341 fun expandItemBranch(node: DWTreeItem): Int { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
342 val position = rootsNodes.indexOf(node) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
343 if (position != -1 && !node.isExpanded()) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
344 node.setExpanded(true) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
345 var index = position + 1 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
346 for (child in node.getChildren()) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
347 val before: Int = rootsNodes.size |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
348 rootsNodes.add(index, child) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
349 expandItemBranch(child) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
350 val after: Int = rootsNodes.size |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
351 val diff = after - before |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
352 index += diff |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
353 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
354 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
355 return position |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
356 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
357 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
358 // Expanding one node branch to until specific level |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
359 // @param node to expand branch of it until level |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
360 // @param level to expand node branches to it |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
361 fun expandItemToLevel(node: DWTreeItem, level: Int) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
362 if (node.getLevel() <= level) expandItem(node) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
363 for (child in node.getChildren()) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
364 expandItemToLevel(child, level) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
365 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
366 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
367 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
368 //Expanding all tree nodes branches to until specific level |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
369 //@param level to expand all nodes branches to it |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
370 fun expandItemsAtLevel(level: Int) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
371 for (i in 0 until rootsNodes.size) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
372 val node: DWTreeItem = rootsNodes[i] |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
373 expandItemToLevel(node, level) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
374 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
375 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
376 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
377 // Collapsing all nodes in the tree with their children |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
378 fun collapseAll() { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
379 val treeItems: MutableList<DWTreeItem> = LinkedList() |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
380 for (i in 0 until rootsNodes.size) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
381 val root: DWTreeItem = rootsNodes[i] |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
382 if (root.getLevel() === 0) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
383 collapseItemBranch(root) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
384 treeItems.add(root) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
385 } else { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
386 root.setExpanded(false) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
387 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
388 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
389 updateItems(treeItems) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
390 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
391 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
392 // Expanding all nodes in the tree with their children |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
393 fun expandAll() { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
394 for (i in 0 until rootsNodes.size) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
395 val root: DWTreeItem = rootsNodes[i] |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
396 expandItemBranch(root) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
397 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
398 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
399 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
400 // Simple constructor |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
401 init { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
402 rootsNodes = LinkedList() |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
403 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
404 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
405 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
406 open class DWTreeViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
407 // Return the current DWTreeItem padding value |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
408 // @return The current padding value |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
409 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
410 // Modify the current node padding value |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
411 // @param padding the new padding value |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
412 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
413 // The default padding value for the DWTreeItem item |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
414 var nodePadding = 50 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
415 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
416 // Bind method that provide padding and bind DWTreeItem to the view list item |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
417 // @param node the current DWTreeItem |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
418 fun bindTreeItem(node: DWTreeItem) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
419 val padding: Int = node.getLevel() * nodePadding |
2781
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
420 val treeItemView = itemView as DWTreeItemView |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
421 |
2783
1b7c1b6ee760
Android: Fix tree basic functionality... need to add child branches,
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2782
diff
changeset
|
422 treeItemView.setPadding( |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
423 padding, |
2783
1b7c1b6ee760
Android: Fix tree basic functionality... need to add child branches,
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2782
diff
changeset
|
424 treeItemView.paddingTop, |
1b7c1b6ee760
Android: Fix tree basic functionality... need to add child branches,
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2782
diff
changeset
|
425 treeItemView.paddingRight, |
1b7c1b6ee760
Android: Fix tree basic functionality... need to add child branches,
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2782
diff
changeset
|
426 treeItemView.paddingBottom |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
427 ) |
2781
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
428 treeItemView.textView.text = node.getTitle() |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
429 treeItemView.iconView.setImageDrawable(node.getIcon()) |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
430 if(node.getChildren().size == 0) { |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
431 treeItemView.expandCollapseView.setImageDrawable(null) |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
432 } else { |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
433 if(node.isExpanded()) { |
2784
cccbb367bcd3
Android: Change the system resources used as expand/collapse for the tree.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2783
diff
changeset
|
434 treeItemView.expandCollapseView.setImageResource(R.drawable.ic_menu_more) |
2781
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
435 } else { |
2784
cccbb367bcd3
Android: Change the system resources used as expand/collapse for the tree.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2783
diff
changeset
|
436 treeItemView.expandCollapseView.setImageResource(R.drawable.ic_menu_add) |
2781
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
437 } |
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
438 } |
2798
a3d62de81ec0
Android: Changes to highlight the selected node of the tree widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2797
diff
changeset
|
439 treeItemView.isChecked = node.isSelected() |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
440 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
441 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
442 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
443 interface DWTreeViewHolderFactory { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
444 // Provide a TreeViewHolder class depend on the current view |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
445 // @param view The list item view |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
446 // @param layout The layout xml file id for current view |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
447 // @return A TreeViewHolder instance |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
448 fun getTreeViewHolder(view: View?, layout: Int): DWTreeViewHolder |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
449 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
450 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
451 class DWTreeCustomViewHolder(itemView: View) : DWTreeViewHolder(itemView) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
452 fun bindTreeNode(node: DWTreeItem) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
453 super.bindTreeItem(node) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
454 // Here you can bind your node and check if it selected or not |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
455 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
456 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
457 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
458 class DWTreeViewAdapter : RecyclerView.Adapter<DWTreeViewHolder> { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
459 // Manager class for TreeItems to easily apply operations on them |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
460 // and to make it easy for testing and extending |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
461 private val treeItemManager: DWTreeItemManager |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
462 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
463 // A ViewHolder Factory to get DWTreeViewHolder object that mapped with layout |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
464 private val treeViewHolderFactory: DWTreeViewHolderFactory |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
465 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
466 // The current selected Tree Item |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
467 private var currentSelectedItem: DWTreeItem? = null |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
468 |
2798
a3d62de81ec0
Android: Changes to highlight the selected node of the tree widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2797
diff
changeset
|
469 // The current selected Tree Item |
a3d62de81ec0
Android: Changes to highlight the selected node of the tree widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2797
diff
changeset
|
470 private var currentSelectedItemView: DWTreeItemView? = null |
a3d62de81ec0
Android: Changes to highlight the selected node of the tree widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2797
diff
changeset
|
471 |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
472 // Custom OnClickListener to be invoked when a DWTreeItem has been clicked. |
2785
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
473 private var treeItemClickListener: ((DWTreeItem?, View?) -> Boolean)? = null |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
474 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
475 // Custom OnLongClickListener to be invoked when a DWTreeItem has been clicked and hold. |
2785
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
476 private var treeItemLongClickListener: ((DWTreeItem?, View?) -> Boolean)? = null |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
477 |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
478 // Custom OnListener to be invoked when a DWTreeItem has been expanded. |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
479 private var treeItemExpandListener: ((DWTreeItem?, View?) -> Boolean)? = null |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
480 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
481 // Simple constructor |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
482 // @param factory a View Holder Factory mapped with layout id's |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
483 constructor(factory: DWTreeViewHolderFactory) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
484 treeViewHolderFactory = factory |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
485 treeItemManager = DWTreeItemManager() |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
486 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
487 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
488 // Constructor used to accept user custom DWTreeItemManager class |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
489 // @param factory a View Holder Factory mapped with layout id's |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
490 // @param manager a custom tree node manager class |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
491 constructor(factory: DWTreeViewHolderFactory, manager: DWTreeItemManager) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
492 treeViewHolderFactory = factory |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
493 treeItemManager = manager |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
494 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
495 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
496 override fun onCreateViewHolder(parent: ViewGroup, layoutId: Int): DWTreeViewHolder { |
2781
c28602443759
Android: Add DWTreeItemView class based on LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2777
diff
changeset
|
497 val view = DWTreeItemView(parent.context) |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
498 return treeViewHolderFactory.getTreeViewHolder(view, layoutId) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
499 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
500 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
501 override fun onBindViewHolder(holder: DWTreeViewHolder, position: Int) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
502 val currentNode: DWTreeItem = treeItemManager.get(position) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
503 holder.bindTreeItem(currentNode) |
2799
fd7c6ff72383
Android: Separate handling of expand/collapse when touched on the expandCollpaseView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2798
diff
changeset
|
504 val treeItemView = holder.itemView as DWTreeItemView |
fd7c6ff72383
Android: Separate handling of expand/collapse when touched on the expandCollpaseView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2798
diff
changeset
|
505 |
fd7c6ff72383
Android: Separate handling of expand/collapse when touched on the expandCollpaseView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2798
diff
changeset
|
506 // Handle touch on the expand/collapse image |
fd7c6ff72383
Android: Separate handling of expand/collapse when touched on the expandCollpaseView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2798
diff
changeset
|
507 treeItemView.expandCollapseView.setOnClickListener { v -> |
fd7c6ff72383
Android: Separate handling of expand/collapse when touched on the expandCollpaseView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2798
diff
changeset
|
508 // Handle node expand and collapse event |
fd7c6ff72383
Android: Separate handling of expand/collapse when touched on the expandCollpaseView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2798
diff
changeset
|
509 if (!currentNode.getChildren().isEmpty()) { |
fd7c6ff72383
Android: Separate handling of expand/collapse when touched on the expandCollpaseView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2798
diff
changeset
|
510 val isNodeExpanded: Boolean = currentNode.isExpanded() |
fd7c6ff72383
Android: Separate handling of expand/collapse when touched on the expandCollpaseView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2798
diff
changeset
|
511 if (isNodeExpanded) collapseNode(currentNode) else expandNode(currentNode) |
fd7c6ff72383
Android: Separate handling of expand/collapse when touched on the expandCollpaseView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2798
diff
changeset
|
512 currentNode.setExpanded(!isNodeExpanded) |
fd7c6ff72383
Android: Separate handling of expand/collapse when touched on the expandCollpaseView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2798
diff
changeset
|
513 |
fd7c6ff72383
Android: Separate handling of expand/collapse when touched on the expandCollpaseView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2798
diff
changeset
|
514 notifyDataSetChanged() |
fd7c6ff72383
Android: Separate handling of expand/collapse when touched on the expandCollpaseView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2798
diff
changeset
|
515 |
fd7c6ff72383
Android: Separate handling of expand/collapse when touched on the expandCollpaseView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2798
diff
changeset
|
516 // Handle DWTreeItem expand listener event |
fd7c6ff72383
Android: Separate handling of expand/collapse when touched on the expandCollpaseView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2798
diff
changeset
|
517 if (!isNodeExpanded && treeItemExpandListener != null) treeItemExpandListener!!( |
fd7c6ff72383
Android: Separate handling of expand/collapse when touched on the expandCollpaseView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2798
diff
changeset
|
518 currentNode, |
fd7c6ff72383
Android: Separate handling of expand/collapse when touched on the expandCollpaseView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2798
diff
changeset
|
519 v |
fd7c6ff72383
Android: Separate handling of expand/collapse when touched on the expandCollpaseView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2798
diff
changeset
|
520 ) |
fd7c6ff72383
Android: Separate handling of expand/collapse when touched on the expandCollpaseView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2798
diff
changeset
|
521 } |
fd7c6ff72383
Android: Separate handling of expand/collapse when touched on the expandCollpaseView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2798
diff
changeset
|
522 } |
fd7c6ff72383
Android: Separate handling of expand/collapse when touched on the expandCollpaseView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2798
diff
changeset
|
523 // Handle node selection |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
524 holder.itemView.setOnClickListener { v -> |
2799
fd7c6ff72383
Android: Separate handling of expand/collapse when touched on the expandCollpaseView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2798
diff
changeset
|
525 // If touched anywhere else, change the selection |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
526 currentNode.setSelected(true) |
2798
a3d62de81ec0
Android: Changes to highlight the selected node of the tree widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2797
diff
changeset
|
527 treeItemView.isChecked = true |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
528 currentSelectedItem?.setSelected(false) |
2798
a3d62de81ec0
Android: Changes to highlight the selected node of the tree widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2797
diff
changeset
|
529 currentSelectedItemView?.isChecked = false |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
530 currentSelectedItem = currentNode |
2798
a3d62de81ec0
Android: Changes to highlight the selected node of the tree widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2797
diff
changeset
|
531 currentSelectedItemView = treeItemView |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
532 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
533 notifyDataSetChanged() |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
534 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
535 // Handle DWTreeItem click listener event |
2785
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
536 if (treeItemClickListener != null) treeItemClickListener!!( |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
537 currentNode, |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
538 v |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
539 ) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
540 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
541 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
542 // Handle DWTreeItem long click listener event |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
543 holder.itemView.setOnLongClickListener { v -> |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
544 if (treeItemLongClickListener != null) { |
2785
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
545 return@setOnLongClickListener treeItemLongClickListener!!( |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
546 currentNode, |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
547 v |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
548 ) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
549 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
550 true |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
551 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
552 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
553 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
554 override fun getItemViewType(position: Int): Int { |
2783
1b7c1b6ee760
Android: Fix tree basic functionality... need to add child branches,
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2782
diff
changeset
|
555 return 1 |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
556 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
557 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
558 override fun getItemCount(): Int { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
559 return treeItemManager.size() |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
560 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
561 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
562 // Collapsing node and all of his children |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
563 // @param node The node to collapse it |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
564 fun collapseNode(node: DWTreeItem) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
565 val position: Int = treeItemManager.collapseItem(node) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
566 if (position != -1) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
567 notifyDataSetChanged() |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
568 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
569 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
570 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
571 // Expanding node and all of his children |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
572 // @param node The node to expand it |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
573 fun expandNode(node: DWTreeItem) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
574 val position: Int = treeItemManager.expandItem(node) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
575 if (position != -1) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
576 notifyDataSetChanged() |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
577 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
578 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
579 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
580 // Collapsing full node branches |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
581 // @param node The node to collapse it |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
582 fun collapseNodeBranch(node: DWTreeItem) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
583 treeItemManager.collapseItemBranch(node) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
584 notifyDataSetChanged() |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
585 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
586 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
587 // Expanding node full branches |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
588 // @param node The node to expand it |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
589 fun expandNodeBranch(node: DWTreeItem) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
590 treeItemManager.expandItemBranch(node) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
591 notifyDataSetChanged() |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
592 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
593 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
594 // Expanding one node branch to until specific level |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
595 // @param node to expand branch of it until level |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
596 // @param level to expand node branches to it |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
597 fun expandNodeToLevel(node: DWTreeItem, level: Int) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
598 treeItemManager.expandItemToLevel(node, level) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
599 notifyDataSetChanged() |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
600 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
601 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
602 // Expanding all tree nodes branches to until specific level |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
603 // @param level to expand all nodes branches to it |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
604 fun expandNodesAtLevel(level: Int) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
605 treeItemManager.expandItemsAtLevel(level) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
606 notifyDataSetChanged() |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
607 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
608 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
609 // Collapsing all nodes in the tree with their children |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
610 fun collapseAll() { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
611 treeItemManager.collapseAll() |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
612 notifyDataSetChanged() |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
613 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
614 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
615 // Expanding all nodes in the tree with their children |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
616 fun expandAll() { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
617 treeItemManager.expandAll() |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
618 notifyDataSetChanged() |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
619 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
620 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
621 // Update the list of tree nodes |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
622 // @param treeItems The new tree nodes |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
623 fun updateTreeItems(treeItems: List<DWTreeItem>) { |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
624 treeItemManager.updateItems(treeItems) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
625 notifyItemRangeInserted(0, treeItems.size) |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
626 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
627 |
2777
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
628 // Clear all the items from the tree |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
629 fun clear() { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
630 treeItemManager.clearItems() |
2783
1b7c1b6ee760
Android: Fix tree basic functionality... need to add child branches,
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2782
diff
changeset
|
631 notifyDataSetChanged() |
2777
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
632 } |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
633 |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
634 // Register a callback to be invoked when this DWTreeItem is clicked |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
635 // @param listener The callback that will run |
2785
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
636 fun setTreeItemClickListener(listener: (DWTreeItem?, View?) -> Boolean) { |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
637 treeItemClickListener = listener |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
638 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
639 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
640 // Register a callback to be invoked when this DWTreeItem is clicked and held |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
641 // @param listener The callback that will run |
2785
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
642 fun setTreeItemLongClickListener(listener: (DWTreeItem?, View?) -> Boolean) { |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
643 treeItemLongClickListener = listener |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
644 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
645 |
2785
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
646 // Register a callback to be invoked when this DWTreeItem is expanded |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
647 // @param listener The callback that will run |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
648 fun setTreeItemExpandListener(listener: (DWTreeItem?, View?) -> Boolean) { |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
649 treeItemExpandListener = listener |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
650 } |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
651 |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
652 // @return The current selected DWTreeItem |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
653 val selectedNode: DWTreeItem? |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
654 get() = currentSelectedItem |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
655 } |
2713
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
656 |
2775
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
657 class DWTree(context: Context) : RecyclerView(context) |
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
658 { |
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
659 var roots: MutableList<DWTreeItem> = ArrayList() |
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
660 |
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
661 fun updateTree() |
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
662 { |
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
663 val treeViewAdapter = this.adapter as DWTreeViewAdapter |
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
664 |
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
665 treeViewAdapter.updateTreeItems(roots) |
2783
1b7c1b6ee760
Android: Fix tree basic functionality... need to add child branches,
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2782
diff
changeset
|
666 treeViewAdapter.notifyDataSetChanged() |
2775
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
667 } |
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
668 } |
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
669 |
2713
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
670 // Color Wheel section |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
671 private val HUE_COLORS = intArrayOf( |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
672 Color.RED, |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
673 Color.YELLOW, |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
674 Color.GREEN, |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
675 Color.CYAN, |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
676 Color.BLUE, |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
677 Color.MAGENTA, |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
678 Color.RED |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
679 ) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
680 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
681 private val SATURATION_COLORS = intArrayOf( |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
682 Color.WHITE, |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
683 setAlpha(Color.WHITE, 0) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
684 ) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
685 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
686 open class ColorWheel @JvmOverloads constructor( |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
687 context: Context, |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
688 attrs: AttributeSet? = null, |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
689 defStyleAttr: Int = 0 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
690 ) : View(context, attrs, defStyleAttr) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
691 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
692 private val hueGradient = GradientDrawable().apply { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
693 gradientType = GradientDrawable.SWEEP_GRADIENT |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
694 shape = GradientDrawable.OVAL |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
695 colors = HUE_COLORS |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
696 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
697 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
698 private val saturationGradient = GradientDrawable().apply { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
699 gradientType = GradientDrawable.RADIAL_GRADIENT |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
700 shape = GradientDrawable.OVAL |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
701 colors = SATURATION_COLORS |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
702 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
703 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
704 private val thumbDrawable = ThumbDrawable() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
705 private val hsvColor = HsvColor(value = 1f) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
706 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
707 private var wheelCenterX = 0 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
708 private var wheelCenterY = 0 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
709 private var wheelRadius = 0 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
710 private var downX = 0f |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
711 private var downY = 0f |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
712 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
713 var rgb |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
714 get() = hsvColor.rgb |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
715 set(rgb) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
716 hsvColor.rgb = rgb |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
717 hsvColor.set(value = 1f) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
718 fireColorListener() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
719 invalidate() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
720 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
721 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
722 var thumbRadius |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
723 get() = thumbDrawable.radius |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
724 set(value) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
725 thumbDrawable.radius = value |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
726 invalidate() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
727 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
728 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
729 var thumbColor |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
730 get() = thumbDrawable.thumbColor |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
731 set(value) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
732 thumbDrawable.thumbColor = value |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
733 invalidate() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
734 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
735 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
736 var thumbStrokeColor |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
737 get() = thumbDrawable.strokeColor |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
738 set(value) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
739 thumbDrawable.strokeColor = value |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
740 invalidate() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
741 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
742 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
743 var thumbColorCircleScale |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
744 get() = thumbDrawable.colorCircleScale |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
745 set(value) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
746 thumbDrawable.colorCircleScale = value |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
747 invalidate() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
748 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
749 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
750 var colorChangeListener: ((Int) -> Unit)? = null |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
751 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
752 var interceptTouchEvent = true |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
753 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
754 init { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
755 thumbRadius = 13 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
756 thumbColor = Color.WHITE |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
757 thumbStrokeColor = Color.DKGRAY |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
758 thumbColorCircleScale = 0.7f |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
759 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
760 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
761 fun setRgb(r: Int, g: Int, b: Int) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
762 rgb = Color.rgb(r, g, b) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
763 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
764 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
765 override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
766 val minDimension = minOf( |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
767 MeasureSpec.getSize(widthMeasureSpec), |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
768 MeasureSpec.getSize(heightMeasureSpec) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
769 ) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
770 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
771 setMeasuredDimension( |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
772 resolveSize(minDimension, widthMeasureSpec), |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
773 resolveSize(minDimension, heightMeasureSpec) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
774 ) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
775 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
776 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
777 override fun onDraw(canvas: Canvas) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
778 drawColorWheel(canvas) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
779 drawThumb(canvas) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
780 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
781 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
782 private fun drawColorWheel(canvas: Canvas) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
783 val hSpace = width - paddingLeft - paddingRight |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
784 val vSpace = height - paddingTop - paddingBottom |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
785 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
786 wheelCenterX = paddingLeft + hSpace / 2 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
787 wheelCenterY = paddingTop + vSpace / 2 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
788 wheelRadius = maxOf(minOf(hSpace, vSpace) / 2, 0) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
789 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
790 val left = wheelCenterX - wheelRadius |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
791 val top = wheelCenterY - wheelRadius |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
792 val right = wheelCenterX + wheelRadius |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
793 val bottom = wheelCenterY + wheelRadius |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
794 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
795 hueGradient.setBounds(left, top, right, bottom) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
796 saturationGradient.setBounds(left, top, right, bottom) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
797 saturationGradient.gradientRadius = wheelRadius.toFloat() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
798 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
799 hueGradient.draw(canvas) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
800 saturationGradient.draw(canvas) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
801 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
802 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
803 private fun drawThumb(canvas: Canvas) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
804 val r = hsvColor.saturation * wheelRadius |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
805 val hueRadians = toRadians(hsvColor.hue) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
806 val x = cos(hueRadians) * r + wheelCenterX |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
807 val y = sin(hueRadians) * r + wheelCenterY |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
808 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
809 thumbDrawable.indicatorColor = hsvColor.rgb |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
810 thumbDrawable.setCoordinates(x, y) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
811 thumbDrawable.draw(canvas) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
812 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
813 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
814 override fun onTouchEvent(event: MotionEvent): Boolean { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
815 when (event.actionMasked) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
816 MotionEvent.ACTION_DOWN -> onActionDown(event) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
817 MotionEvent.ACTION_MOVE -> updateColorOnMotionEvent(event) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
818 MotionEvent.ACTION_UP -> { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
819 updateColorOnMotionEvent(event) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
820 if (isTap(event, downX, downY)) performClick() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
821 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
822 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
823 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
824 return true |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
825 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
826 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
827 private fun onActionDown(event: MotionEvent) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
828 parent.requestDisallowInterceptTouchEvent(interceptTouchEvent) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
829 updateColorOnMotionEvent(event) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
830 downX = event.x |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
831 downY = event.y |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
832 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
833 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
834 override fun performClick() = super.performClick() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
835 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
836 private fun updateColorOnMotionEvent(event: MotionEvent) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
837 calculateColor(event) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
838 fireColorListener() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
839 invalidate() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
840 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
841 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
842 private fun calculateColor(event: MotionEvent) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
843 val legX = event.x - wheelCenterX |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
844 val legY = event.y - wheelCenterY |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
845 val hypot = minOf(hypot(legX, legY), wheelRadius.toFloat()) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
846 val hue = (toDegrees(atan2(legY, legX)) + 360) % 360 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
847 val saturation = hypot / wheelRadius |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
848 hsvColor.set(hue, saturation, 1f) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
849 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
850 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
851 private fun fireColorListener() { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
852 colorChangeListener?.invoke(hsvColor.rgb) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
853 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
854 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
855 override fun onSaveInstanceState(): Parcelable { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
856 val superState = super.onSaveInstanceState() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
857 val thumbState = thumbDrawable.saveState() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
858 return ColorWheelState(superState, this, thumbState) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
859 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
860 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
861 override fun onRestoreInstanceState(state: Parcelable) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
862 if (state is ColorWheelState) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
863 super.onRestoreInstanceState(state.superState) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
864 readColorWheelState(state) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
865 } else { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
866 super.onRestoreInstanceState(state) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
867 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
868 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
869 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
870 private fun readColorWheelState(state: ColorWheelState) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
871 thumbDrawable.restoreState(state.thumbState) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
872 interceptTouchEvent = state.interceptTouchEvent |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
873 rgb = state.rgb |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
874 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
875 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
876 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
877 internal class ColorWheelState : View.BaseSavedState { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
878 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
879 val thumbState: ThumbDrawableState |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
880 val interceptTouchEvent: Boolean |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
881 val rgb: Int |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
882 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
883 constructor( |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
884 superState: Parcelable?, |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
885 view: ColorWheel, |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
886 thumbState: ThumbDrawableState |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
887 ) : super(superState) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
888 this.thumbState = thumbState |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
889 interceptTouchEvent = view.interceptTouchEvent |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
890 rgb = view.rgb |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
891 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
892 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
893 constructor(source: Parcel) : super(source) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
894 thumbState = source.readThumbState() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
895 interceptTouchEvent = source.readBooleanCompat() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
896 rgb = source.readInt() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
897 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
898 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
899 override fun writeToParcel(out: Parcel, flags: Int) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
900 super.writeToParcel(out, flags) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
901 out.writeThumbState(thumbState, flags) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
902 out.writeBooleanCompat(interceptTouchEvent) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
903 out.writeInt(rgb) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
904 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
905 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
906 companion object CREATOR : Parcelable.Creator<ColorWheelState> { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
907 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
908 override fun createFromParcel(source: Parcel) = ColorWheelState(source) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
909 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
910 override fun newArray(size: Int) = arrayOfNulls<ColorWheelState>(size) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
911 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
912 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
913 internal fun Parcel.writeBooleanCompat(value: Boolean) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
914 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
915 this.writeBoolean(value) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
916 } else { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
917 this.writeInt(if (value) 1 else 0) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
918 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
919 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
920 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
921 internal fun Parcel.readBooleanCompat(): Boolean { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
922 return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
923 this.readBoolean() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
924 } else { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
925 this.readInt() == 1 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
926 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
927 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
928 private const val MAX_ALPHA = 255 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
929 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
930 open class GradientSeekBar @JvmOverloads constructor( |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
931 context: Context, |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
932 attrs: AttributeSet? = null, |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
933 defStyleAttr: Int = 0 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
934 ) : View(context, attrs, defStyleAttr) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
935 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
936 private val gradientColors = IntArray(2) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
937 private val thumbDrawable = ThumbDrawable() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
938 private val gradientDrawable = GradientDrawable() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
939 private val argbEvaluator = android.animation.ArgbEvaluator() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
940 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
941 private lateinit var orientationStrategy: OrientationStrategy |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
942 private var downX = 0f |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
943 private var downY = 0f |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
944 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
945 var startColor |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
946 get() = gradientColors[0] |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
947 set(color) { setColors(start = color) } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
948 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
949 var endColor |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
950 get() = gradientColors[1] |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
951 set(color) { setColors(end = color) } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
952 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
953 var offset = 0f |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
954 set(offset) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
955 field = ensureOffsetWithinRange(offset) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
956 calculateArgb() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
957 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
958 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
959 var barSize = 0 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
960 set(width) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
961 field = width |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
962 requestLayout() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
963 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
964 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
965 var cornersRadius = 0f |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
966 set(radius) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
967 field = radius |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
968 invalidate() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
969 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
970 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
971 var orientation = Orientation.VERTICAL |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
972 set(orientation) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
973 field = orientation |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
974 orientationStrategy = createOrientationStrategy() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
975 requestLayout() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
976 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
977 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
978 var thumbColor |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
979 get() = thumbDrawable.thumbColor |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
980 set(value) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
981 thumbDrawable.thumbColor = value |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
982 invalidate() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
983 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
984 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
985 var thumbStrokeColor |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
986 get() = thumbDrawable.strokeColor |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
987 set(value) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
988 thumbDrawable.strokeColor = value |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
989 invalidate() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
990 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
991 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
992 var thumbColorCircleScale |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
993 get() = thumbDrawable.colorCircleScale |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
994 set(value) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
995 thumbDrawable.colorCircleScale = value |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
996 invalidate() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
997 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
998 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
999 var thumbRadius |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1000 get() = thumbDrawable.radius |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1001 set(radius) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1002 thumbDrawable.radius = radius |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1003 requestLayout() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1004 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1005 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1006 var argb = 0 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1007 private set |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1008 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1009 var colorChangeListener: ((Float, Int) -> Unit)? = null |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1010 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1011 var interceptTouchEvent = true |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1012 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1013 init { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1014 thumbColor = Color.WHITE |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1015 thumbStrokeColor = Color.DKGRAY |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1016 thumbColorCircleScale = 0.7f |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1017 thumbRadius = 13 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1018 barSize = 10 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1019 cornersRadius = 5.0f |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1020 offset = 0f |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1021 orientation = Orientation.VERTICAL |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1022 setColors(Color.TRANSPARENT, Color.BLACK) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1023 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1024 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1025 private fun createOrientationStrategy(): OrientationStrategy { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1026 return when (orientation) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1027 Orientation.VERTICAL -> VerticalStrategy() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1028 Orientation.HORIZONTAL -> HorizontalStrategy() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1029 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1030 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1031 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1032 fun setColors(start: Int = startColor, end: Int = endColor) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1033 updateGradientColors(start, end) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1034 calculateArgb() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1035 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1036 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1037 private fun updateGradientColors(start: Int, end: Int) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1038 gradientColors[0] = start |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1039 gradientColors[1] = end |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1040 gradientDrawable.colors = gradientColors |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1041 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1042 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1043 override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1044 val dimens = orientationStrategy.measure(this, widthMeasureSpec, heightMeasureSpec) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1045 setMeasuredDimension(dimens.width(), dimens.height()) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1046 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1047 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1048 override fun onDraw(canvas: Canvas) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1049 drawGradientRect(canvas) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1050 drawThumb(canvas) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1051 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1052 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1053 private fun drawGradientRect(canvas: Canvas) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1054 gradientDrawable.orientation = orientationStrategy.gradientOrientation |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1055 gradientDrawable.bounds = orientationStrategy.getGradientBounds(this) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1056 gradientDrawable.cornerRadius = cornersRadius |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1057 gradientDrawable.draw(canvas) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1058 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1059 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1060 private fun drawThumb(canvas: Canvas) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1061 val coordinates = orientationStrategy.getThumbPosition(this, gradientDrawable.bounds) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1062 thumbDrawable.indicatorColor = argb |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1063 thumbDrawable.setCoordinates(coordinates.x, coordinates.y) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1064 thumbDrawable.draw(canvas) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1065 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1066 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1067 override fun onTouchEvent(event: MotionEvent): Boolean { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1068 when (event.actionMasked) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1069 MotionEvent.ACTION_DOWN -> onActionDown(event) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1070 MotionEvent.ACTION_MOVE -> calculateOffsetOnMotionEvent(event) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1071 MotionEvent.ACTION_UP -> { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1072 calculateOffsetOnMotionEvent(event) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1073 if (isTap(event, downX, downY)) performClick() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1074 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1075 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1076 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1077 return true |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1078 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1079 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1080 private fun onActionDown(event: MotionEvent) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1081 parent.requestDisallowInterceptTouchEvent(interceptTouchEvent) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1082 calculateOffsetOnMotionEvent(event) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1083 downX = event.x |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1084 downY = event.y |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1085 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1086 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1087 override fun performClick() = super.performClick() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1088 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1089 private fun calculateOffsetOnMotionEvent(event: MotionEvent) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1090 offset = orientationStrategy.getOffset(this, event, gradientDrawable.bounds) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1091 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1092 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1093 private fun calculateArgb() { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1094 argb = argbEvaluator.evaluate(offset, startColor, endColor) as Int |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1095 fireListener() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1096 invalidate() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1097 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1098 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1099 private fun fireListener() { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1100 colorChangeListener?.invoke(offset, argb) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1101 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1102 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1103 override fun onSaveInstanceState(): Parcelable { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1104 val superState = super.onSaveInstanceState() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1105 val thumbState = thumbDrawable.saveState() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1106 return GradientSeekBarState(superState, this, thumbState) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1107 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1108 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1109 override fun onRestoreInstanceState(state: Parcelable) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1110 if (state is GradientSeekBarState) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1111 super.onRestoreInstanceState(state.superState) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1112 readGradientSeekBarState(state) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1113 } else { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1114 super.onRestoreInstanceState(state) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1115 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1116 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1117 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1118 private fun readGradientSeekBarState(state: GradientSeekBarState) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1119 updateGradientColors(state.startColor, state.endColor) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1120 offset = state.offset |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1121 barSize = state.barSize |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1122 cornersRadius = state.cornerRadius |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1123 orientation = Orientation.values()[state.orientation] |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1124 interceptTouchEvent = state.interceptTouchEvent |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1125 thumbDrawable.restoreState(state.thumbState) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1126 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1127 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1128 private fun ensureOffsetWithinRange(offset: Float) = ensureWithinRange(offset, 0f, 1f) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1129 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1130 enum class Orientation { VERTICAL, HORIZONTAL } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1131 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1132 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1133 val GradientSeekBar.currentColorAlpha get() = Color.alpha(argb) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1134 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1135 fun GradientSeekBar.setTransparentToColor(color: Int, respectAlpha: Boolean = true) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1136 if (respectAlpha) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1137 this.offset = Color.alpha(color) / MAX_ALPHA.toFloat() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1138 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1139 this.setColors( |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1140 setAlpha(color, 0), |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1141 setAlpha(color, MAX_ALPHA) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1142 ) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1143 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1144 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1145 inline fun GradientSeekBar.setAlphaChangeListener( |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1146 crossinline listener: (Float, Int, Int) -> Unit |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1147 ) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1148 this.colorChangeListener = { offset, color -> |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1149 listener(offset, color, this.currentColorAlpha) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1150 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1151 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1152 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1153 fun GradientSeekBar.setBlackToColor(color: Int) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1154 this.setColors(Color.BLACK, color) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1155 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1156 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1157 internal class GradientSeekBarState : View.BaseSavedState { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1158 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1159 val startColor: Int |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1160 val endColor: Int |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1161 val offset: Float |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1162 val barSize: Int |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1163 val cornerRadius: Float |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1164 val orientation: Int |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1165 val interceptTouchEvent: Boolean |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1166 val thumbState: ThumbDrawableState |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1167 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1168 constructor( |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1169 superState: Parcelable?, |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1170 view: GradientSeekBar, |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1171 thumbState: ThumbDrawableState |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1172 ) : super(superState) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1173 startColor = view.startColor |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1174 endColor = view.endColor |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1175 offset = view.offset |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1176 barSize = view.barSize |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1177 cornerRadius = view.cornersRadius |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1178 orientation = view.orientation.ordinal |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1179 interceptTouchEvent = view.interceptTouchEvent |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1180 this.thumbState = thumbState |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1181 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1182 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1183 constructor(source: Parcel) : super(source) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1184 startColor = source.readInt() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1185 endColor = source.readInt() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1186 offset = source.readFloat() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1187 barSize = source.readInt() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1188 cornerRadius = source.readFloat() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1189 orientation = source.readInt() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1190 interceptTouchEvent = source.readBooleanCompat() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1191 thumbState = source.readThumbState() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1192 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1193 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1194 override fun writeToParcel(out: Parcel, flags: Int) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1195 super.writeToParcel(out, flags) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1196 out.writeInt(startColor) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1197 out.writeInt(endColor) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1198 out.writeFloat(offset) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1199 out.writeInt(barSize) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1200 out.writeFloat(cornerRadius) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1201 out.writeInt(orientation) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1202 out.writeBooleanCompat(interceptTouchEvent) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1203 out.writeThumbState(thumbState, flags) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1204 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1205 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1206 companion object CREATOR : Parcelable.Creator<GradientSeekBarState> { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1207 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1208 override fun createFromParcel(source: Parcel) = GradientSeekBarState(source) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1209 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1210 override fun newArray(size: Int) = arrayOfNulls<GradientSeekBarState>(size) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1211 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1212 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1213 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1214 internal class HorizontalStrategy : OrientationStrategy { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1215 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1216 private val rect = Rect() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1217 private val point = PointF() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1218 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1219 override val gradientOrientation = GradientDrawable.Orientation.LEFT_RIGHT |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1220 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1221 override fun measure(view: GradientSeekBar, widthSpec: Int, heightSpec: Int): Rect { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1222 val widthSize = View.MeasureSpec.getSize(widthSpec) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1223 val maxHeight = maxOf(view.barSize, view.thumbRadius * 2) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1224 val preferredWidth = widthSize + view.paddingLeft + view.paddingRight |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1225 val preferredHeight = maxHeight + view.paddingTop + view.paddingBottom |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1226 val finalWidth = View.resolveSize(preferredWidth, widthSpec) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1227 val finalHeight = View.resolveSize(preferredHeight, heightSpec) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1228 return rect.apply { set(0, 0, finalWidth, finalHeight) } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1229 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1230 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1231 override fun getGradientBounds(view: GradientSeekBar): Rect { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1232 val availableHeight = view.height - view.paddingTop - view.paddingRight |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1233 val left = view.paddingLeft + view.thumbRadius |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1234 val right = view.width - view.paddingRight - view.thumbRadius |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1235 val top = view.paddingTop + (availableHeight - view.barSize) / 2 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1236 val bottom = top + view.barSize |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1237 return rect.apply { set(left, top, right, bottom) } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1238 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1239 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1240 override fun getThumbPosition(view: GradientSeekBar, gradient: Rect): PointF { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1241 val x = (gradient.left + view.offset * gradient.width()) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1242 val y = view.height / 2f |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1243 return point.apply { set(x, y) } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1244 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1245 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1246 override fun getOffset(view: GradientSeekBar, event: MotionEvent, gradient: Rect): Float { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1247 val checkedX = ensureWithinRange(event.x.roundToInt(), gradient.left, gradient.right) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1248 val relativeX = (checkedX - gradient.left).toFloat() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1249 return relativeX / gradient.width() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1250 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1251 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1252 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1253 internal fun View.isTap(lastEvent: MotionEvent, initialX: Float, initialY: Float): Boolean { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1254 val config = ViewConfiguration.get(context) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1255 val duration = lastEvent.eventTime - lastEvent.downTime |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1256 val distance = hypot(lastEvent.x - initialX, lastEvent.y - initialY) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1257 return duration < ViewConfiguration.getTapTimeout() && distance < config.scaledTouchSlop |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1258 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1259 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1260 internal const val PI = Math.PI.toFloat() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1261 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1262 internal fun toRadians(degrees: Float) = degrees / 180f * PI |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1263 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1264 internal fun toDegrees(radians: Float) = radians * 180f / PI |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1265 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1266 internal fun <T> ensureWithinRange( |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1267 value: T, |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1268 start: T, |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1269 end: T |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1270 ): T where T : Number, T : Comparable<T> = minOf(maxOf(value, start), end) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1271 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1272 internal fun setAlpha(argb: Int, alpha: Int) = |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1273 Color.argb(alpha, Color.red(argb), Color.green(argb), Color.blue(argb)) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1274 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1275 class HsvColor(hue: Float = 0f, saturation: Float = 0f, value: Float = 0f) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1276 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1277 private val hsv = floatArrayOf( |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1278 ensureHue(hue), |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1279 ensureSaturation(saturation), |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1280 ensureValue(value) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1281 ) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1282 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1283 var hue |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1284 get() = hsv[0] |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1285 set(hue) { hsv[0] = ensureHue(hue) } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1286 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1287 var saturation |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1288 get() = hsv[1] |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1289 set(saturation) { hsv[1] = ensureSaturation(saturation) } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1290 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1291 var value |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1292 get() = hsv[2] |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1293 set(value) { hsv[2] = ensureValue(value) } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1294 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1295 var rgb |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1296 get() = Color.HSVToColor(hsv) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1297 set(rgb) { Color.colorToHSV(rgb, hsv) } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1298 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1299 fun set(hue: Float = hsv[0], saturation: Float = hsv[1], value: Float = hsv[2]) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1300 hsv[0] = ensureHue(hue) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1301 hsv[1] = ensureSaturation(saturation) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1302 hsv[2] = ensureValue(value) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1303 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1304 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1305 private fun ensureHue(hue: Float) = ensureWithinRange(hue, 0f, 360f) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1306 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1307 private fun ensureValue(value: Float) = ensureWithinRange(value, 0f, 1f) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1308 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1309 private fun ensureSaturation(saturation: Float) = ensureValue(saturation) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1310 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1311 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1312 internal interface OrientationStrategy { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1313 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1314 val gradientOrientation: GradientDrawable.Orientation |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1315 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1316 fun measure(view: GradientSeekBar, widthSpec: Int, heightSpec: Int): Rect |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1317 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1318 fun getGradientBounds(view: GradientSeekBar): Rect |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1319 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1320 fun getThumbPosition(view: GradientSeekBar, gradient: Rect): PointF |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1321 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1322 fun getOffset(view: GradientSeekBar, event: MotionEvent, gradient: Rect): Float |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1323 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1324 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1325 internal class ThumbDrawableState private constructor( |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1326 val radius: Int, |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1327 val thumbColor: Int, |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1328 val strokeColor: Int, |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1329 val colorCircleScale: Float |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1330 ) : Parcelable { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1331 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1332 constructor(thumbDrawable: ThumbDrawable) : this( |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1333 thumbDrawable.radius, |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1334 thumbDrawable.thumbColor, |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1335 thumbDrawable.strokeColor, |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1336 thumbDrawable.colorCircleScale |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1337 ) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1338 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1339 constructor(parcel: Parcel) : this( |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1340 parcel.readInt(), |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1341 parcel.readInt(), |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1342 parcel.readInt(), |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1343 parcel.readFloat() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1344 ) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1345 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1346 override fun writeToParcel(parcel: Parcel, flags: Int) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1347 parcel.writeInt(radius) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1348 parcel.writeInt(thumbColor) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1349 parcel.writeInt(strokeColor) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1350 parcel.writeFloat(colorCircleScale) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1351 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1352 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1353 override fun describeContents() = 0 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1354 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1355 companion object { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1356 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1357 val EMPTY_STATE = ThumbDrawableState(0, 0, 0, 0f) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1358 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1359 @JvmField |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1360 val CREATOR = object : Parcelable.Creator<ThumbDrawableState> { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1361 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1362 override fun createFromParcel(parcel: Parcel) = ThumbDrawableState(parcel) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1363 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1364 override fun newArray(size: Int) = arrayOfNulls<ThumbDrawableState>(size) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1365 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1366 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1367 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1368 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1369 internal fun Parcel.writeThumbState(state: ThumbDrawableState, flags: Int) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1370 this.writeParcelable(state, flags) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1371 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1372 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1373 internal fun Parcel.readThumbState(): ThumbDrawableState { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1374 return this.readParcelable(ThumbDrawableState::class.java.classLoader) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1375 ?: ThumbDrawableState.EMPTY_STATE |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1376 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1377 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1378 internal class ThumbDrawable { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1379 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1380 private val paint = Paint(Paint.ANTI_ALIAS_FLAG).apply { strokeWidth = 1f } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1381 private var x = 0f |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1382 private var y = 0f |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1383 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1384 var indicatorColor = 0 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1385 var strokeColor = 0 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1386 var thumbColor = 0 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1387 var radius = 0 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1388 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1389 var colorCircleScale = 0f |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1390 set(value) { field = ensureWithinRange(value, 0f, 1f) } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1391 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1392 fun setCoordinates(x: Float, y: Float) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1393 this.x = x |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1394 this.y = y |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1395 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1396 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1397 fun draw(canvas: Canvas) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1398 drawThumb(canvas) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1399 drawStroke(canvas) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1400 drawColorIndicator(canvas) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1401 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1402 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1403 private fun drawThumb(canvas: Canvas) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1404 paint.color = thumbColor |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1405 paint.style = Paint.Style.FILL |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1406 canvas.drawCircle(x, y, radius.toFloat(), paint) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1407 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1408 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1409 private fun drawStroke(canvas: Canvas) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1410 val strokeCircleRadius = radius - paint.strokeWidth / 2f |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1411 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1412 paint.color = strokeColor |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1413 paint.style = Paint.Style.STROKE |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1414 canvas.drawCircle(x, y, strokeCircleRadius, paint) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1415 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1416 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1417 private fun drawColorIndicator(canvas: Canvas) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1418 val colorIndicatorCircleRadius = radius * colorCircleScale |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1419 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1420 paint.color = indicatorColor |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1421 paint.style = Paint.Style.FILL |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1422 canvas.drawCircle(x, y, colorIndicatorCircleRadius, paint) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1423 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1424 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1425 fun restoreState(state: ThumbDrawableState) { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1426 radius = state.radius |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1427 thumbColor = state.thumbColor |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1428 strokeColor = state.strokeColor |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1429 colorCircleScale = state.colorCircleScale |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1430 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1431 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1432 fun saveState() = ThumbDrawableState(this) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1433 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1434 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1435 internal class VerticalStrategy : OrientationStrategy { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1436 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1437 private val rect = Rect() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1438 private val point = PointF() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1439 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1440 override val gradientOrientation = GradientDrawable.Orientation.BOTTOM_TOP |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1441 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1442 override fun measure(view: GradientSeekBar, widthSpec: Int, heightSpec: Int): Rect { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1443 val heightSize = View.MeasureSpec.getSize(heightSpec) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1444 val maxWidth = maxOf(view.barSize, view.thumbRadius * 2) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1445 val preferredWidth = maxWidth + view.paddingLeft + view.paddingRight |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1446 val preferredHeight = heightSize + view.paddingTop + view.paddingBottom |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1447 val finalWidth = View.resolveSize(preferredWidth, widthSpec) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1448 val finalHeight = View.resolveSize(preferredHeight, heightSpec) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1449 return rect.apply { set(0, 0, finalWidth, finalHeight) } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1450 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1451 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1452 override fun getGradientBounds(view: GradientSeekBar): Rect { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1453 val availableWidth = view.width - view.paddingLeft - view.paddingRight |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1454 val left = view.paddingLeft + (availableWidth - view.barSize) / 2 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1455 val right = left + view.barSize |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1456 val top = view.paddingTop + view.thumbRadius |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1457 val bottom = view.height - view.paddingBottom - view.thumbRadius |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1458 return rect.apply { set(left, top, right, bottom) } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1459 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1460 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1461 override fun getThumbPosition(view: GradientSeekBar, gradient: Rect): PointF { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1462 val y = (gradient.top + (1f - view.offset) * gradient.height()) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1463 val x = view.width / 2f |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1464 return point.apply { set(x, y) } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1465 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1466 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1467 override fun getOffset(view: GradientSeekBar, event: MotionEvent, gradient: Rect): Float { |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1468 val checkedY = ensureWithinRange(event.y.roundToInt(), gradient.top, gradient.bottom) |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1469 val relativeY = (checkedY - gradient.top).toFloat() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1470 return 1f - relativeY / gradient.height() |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1471 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1472 } |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1473 |
6594bb323ab5
Android: Import Colow Wheel by Anton Popov.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2709
diff
changeset
|
1474 // Main Dynamic Windows section |
2620
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1475 object DWEvent { |
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1476 const val TIMER = 0 |
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1477 const val CONFIGURE = 1 |
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1478 const val KEY_PRESS = 2 |
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1479 const val BUTTON_PRESS = 3 |
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1480 const val BUTTON_RELEASE = 4 |
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1481 const val MOTION_NOTIFY = 5 |
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1482 const val DELETE = 6 |
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1483 const val EXPOSE = 7 |
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1484 const val CLICKED = 8 |
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1485 const val ITEM_ENTER = 9 |
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1486 const val ITEM_CONTEXT = 10 |
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1487 const val LIST_SELECT = 11 |
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1488 const val ITEM_SELECT = 12 |
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1489 const val SET_FOCUS = 13 |
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1490 const val VALUE_CHANGED = 14 |
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1491 const val SWITCH_PAGE = 15 |
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1492 const val TREE_EXPAND = 16 |
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1493 const val COLUMN_CLICK = 17 |
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1494 const val HTML_RESULT = 18 |
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1495 const val HTML_CHANGED = 19 |
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1496 } |
2473
aa420e366b2b
Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1497 |
2658
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
1498 val DWImageExts = arrayOf("", ".png", ".webp", ".jpg", ".jpeg", ".gif") |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
1499 |
2495
5664c91d03fb
Android: Attempts to sort out the various issues... still not working but...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2494
diff
changeset
|
1500 class DWTabViewPagerAdapter : RecyclerView.Adapter<DWTabViewPagerAdapter.DWEventViewHolder>() { |
2736
09775418c776
Android: Use "View" as the type for the viewList instead of LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2735
diff
changeset
|
1501 val viewList = mutableListOf<View>() |
2515
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1502 val pageList = mutableListOf<Long>() |
2692
231f9489a38a
Android: Keep a list of tab titles in the ViewPager2 adapter and set titles in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2691
diff
changeset
|
1503 val titleList = mutableListOf<String?>() |
2515
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1504 var currentPageID = 0L |
2667
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
1505 var recyclerView: RecyclerView? = null |
2474
a13e6db064f4
Android: Implement thread, semaphore, shared memory API functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2473
diff
changeset
|
1506 |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
1507 override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = |
2498
4ae2b3b77f25
Android: Get the notebook control functional. Disable recylcing of the views.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2497
diff
changeset
|
1508 DWEventViewHolder(viewList.get(viewType)) |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
1509 |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
1510 override fun getItemCount() = viewList.count() |
2498
4ae2b3b77f25
Android: Get the notebook control functional. Disable recylcing of the views.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2497
diff
changeset
|
1511 override fun getItemViewType(position: Int): Int { |
4ae2b3b77f25
Android: Get the notebook control functional. Disable recylcing of the views.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2497
diff
changeset
|
1512 return position |
4ae2b3b77f25
Android: Get the notebook control functional. Disable recylcing of the views.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2497
diff
changeset
|
1513 } |
2667
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
1514 override fun onAttachedToRecyclerView(rv: RecyclerView) { |
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
1515 recyclerView = rv |
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
1516 } |
2495
5664c91d03fb
Android: Attempts to sort out the various issues... still not working but...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2494
diff
changeset
|
1517 override fun onBindViewHolder(holder: DWEventViewHolder, position: Int) { |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
1518 holder.setIsRecyclable(false) |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
1519 } |
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
1520 |
2498
4ae2b3b77f25
Android: Get the notebook control functional. Disable recylcing of the views.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2497
diff
changeset
|
1521 class DWEventViewHolder(var view: View) : RecyclerView.ViewHolder(view) |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
1522 } |
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
1523 |
2505
a149dabf6a1f
Android: HTML touchups, implement DW_SIGNAL_HTML_CHANGED: STARTED and COMPLETE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2503
diff
changeset
|
1524 private class DWWebViewClient : WebViewClient() { |
a149dabf6a1f
Android: HTML touchups, implement DW_SIGNAL_HTML_CHANGED: STARTED and COMPLETE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2503
diff
changeset
|
1525 //Implement shouldOverrideUrlLoading// |
2788
8a4f162810c2
Android: During dw_file_browse() request read/write access to external
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2785
diff
changeset
|
1526 @Deprecated("Deprecated in Java") |
2505
a149dabf6a1f
Android: HTML touchups, implement DW_SIGNAL_HTML_CHANGED: STARTED and COMPLETE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2503
diff
changeset
|
1527 override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean { |
a149dabf6a1f
Android: HTML touchups, implement DW_SIGNAL_HTML_CHANGED: STARTED and COMPLETE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2503
diff
changeset
|
1528 // We always want to load in our own WebView, |
a149dabf6a1f
Android: HTML touchups, implement DW_SIGNAL_HTML_CHANGED: STARTED and COMPLETE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2503
diff
changeset
|
1529 // to match the behavior on the other platforms |
a149dabf6a1f
Android: HTML touchups, implement DW_SIGNAL_HTML_CHANGED: STARTED and COMPLETE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2503
diff
changeset
|
1530 return false |
a149dabf6a1f
Android: HTML touchups, implement DW_SIGNAL_HTML_CHANGED: STARTED and COMPLETE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2503
diff
changeset
|
1531 } |
a149dabf6a1f
Android: HTML touchups, implement DW_SIGNAL_HTML_CHANGED: STARTED and COMPLETE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2503
diff
changeset
|
1532 override fun onPageStarted(view: WebView, url: String, favicon: Bitmap?) { |
a149dabf6a1f
Android: HTML touchups, implement DW_SIGNAL_HTML_CHANGED: STARTED and COMPLETE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2503
diff
changeset
|
1533 // Handle the DW_HTML_CHANGE_STARTED event |
2620
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1534 eventHandlerHTMLChanged(view, DWEvent.HTML_CHANGED, url, 1) |
2505
a149dabf6a1f
Android: HTML touchups, implement DW_SIGNAL_HTML_CHANGED: STARTED and COMPLETE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2503
diff
changeset
|
1535 } |
a149dabf6a1f
Android: HTML touchups, implement DW_SIGNAL_HTML_CHANGED: STARTED and COMPLETE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2503
diff
changeset
|
1536 |
a149dabf6a1f
Android: HTML touchups, implement DW_SIGNAL_HTML_CHANGED: STARTED and COMPLETE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2503
diff
changeset
|
1537 override fun onPageFinished(view: WebView, url: String) { |
a149dabf6a1f
Android: HTML touchups, implement DW_SIGNAL_HTML_CHANGED: STARTED and COMPLETE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2503
diff
changeset
|
1538 // Handle the DW_HTML_CHANGE_COMPLETE event |
2620
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1539 eventHandlerHTMLChanged(view, DWEvent.HTML_CHANGED, url, 4) |
2505
a149dabf6a1f
Android: HTML touchups, implement DW_SIGNAL_HTML_CHANGED: STARTED and COMPLETE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2503
diff
changeset
|
1540 } |
a149dabf6a1f
Android: HTML touchups, implement DW_SIGNAL_HTML_CHANGED: STARTED and COMPLETE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2503
diff
changeset
|
1541 |
a149dabf6a1f
Android: HTML touchups, implement DW_SIGNAL_HTML_CHANGED: STARTED and COMPLETE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2503
diff
changeset
|
1542 external fun eventHandlerHTMLChanged(obj1: View, message: Int, URI: String, status: Int) |
a149dabf6a1f
Android: HTML touchups, implement DW_SIGNAL_HTML_CHANGED: STARTED and COMPLETE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2503
diff
changeset
|
1543 } |
a149dabf6a1f
Android: HTML touchups, implement DW_SIGNAL_HTML_CHANGED: STARTED and COMPLETE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2503
diff
changeset
|
1544 |
2727
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1545 class DWPrintDocumentAdapter : PrintDocumentAdapter() |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1546 { |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1547 var context: Context? = null |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1548 var pages: Int = 0 |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1549 var pdfDocument: PrintedPdfDocument? = null |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1550 var print: Long = 0 |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1551 |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1552 override fun onLayout( |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1553 oldAttributes: PrintAttributes?, |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1554 newAttributes: PrintAttributes, |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1555 cancellationSignal: CancellationSignal?, |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1556 callback: LayoutResultCallback, |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1557 extras: Bundle? |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1558 ) { |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1559 // Create a new PdfDocument with the requested page attributes |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1560 pdfDocument = context?.let { PrintedPdfDocument(it, newAttributes) } |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1561 |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1562 // Respond to cancellation request |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1563 if (cancellationSignal?.isCanceled == true) { |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1564 callback.onLayoutCancelled() |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1565 return |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1566 } |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1567 |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1568 if (pages > 0) { |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1569 // Return print information to print framework |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1570 PrintDocumentInfo.Builder("print_output.pdf") |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1571 .setContentType(PrintDocumentInfo.CONTENT_TYPE_DOCUMENT) |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1572 .setPageCount(pages) |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1573 .build() |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1574 .also { info -> |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1575 // Content layout reflow is complete |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1576 callback.onLayoutFinished(info, true) |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1577 } |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1578 } else { |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1579 // Otherwise report an error to the print framework |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1580 callback.onLayoutFailed("No pages to print.") |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1581 } |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1582 } |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1583 |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1584 override fun onWrite( |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1585 pageRanges: Array<out PageRange>, |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1586 destination: ParcelFileDescriptor, |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1587 cancellationSignal: CancellationSignal?, |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1588 callback: WriteResultCallback |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1589 ) { |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1590 var writtenPagesArray: Array<PdfDocument.Page> = emptyArray() |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1591 |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1592 // Iterate over each page of the document, |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1593 // check if it's in the output range. |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1594 for (i in 0 until pages) { |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1595 pdfDocument?.startPage(i)?.also { page -> |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1596 |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1597 // check for cancellation |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1598 if (cancellationSignal?.isCanceled == true) { |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1599 callback.onWriteCancelled() |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1600 pdfDocument?.close() |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1601 pdfDocument = null |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1602 return |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1603 } |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1604 |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1605 // Draw page content for printing |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1606 var bitmap = Bitmap.createBitmap(page.canvas.width, page.canvas.height, Bitmap.Config.ARGB_8888) |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1607 // Actual drawing is done in the JNI C code callback to the bitmap |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1608 eventHandlerPrintDraw(print, bitmap, i, page.canvas.width, page.canvas.height) |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1609 // Copy from the bitmap canvas our C code drew on to the PDF page canvas |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1610 val rect = Rect(0, 0, page.canvas.width, page.canvas.height) |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1611 page.canvas.drawBitmap(bitmap, rect, rect, null) |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1612 |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1613 // Rendering is complete, so page can be finalized. |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1614 pdfDocument?.finishPage(page) |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1615 |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1616 // Add the new page to the array |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1617 writtenPagesArray += page |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1618 } |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1619 } |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1620 |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1621 // Write PDF document to file |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1622 try { |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1623 pdfDocument?.writeTo(FileOutputStream(destination.fileDescriptor)) |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1624 } catch (e: IOException) { |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1625 callback.onWriteFailed(e.toString()) |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1626 return |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1627 } finally { |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1628 pdfDocument?.close() |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1629 pdfDocument = null |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1630 } |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1631 // Signal the print framework the document is complete |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1632 callback.onWriteFinished(pageRanges) |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1633 } |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1634 |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1635 override fun onFinish() { |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1636 // Notify our C code so it can cleanup |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1637 eventHandlerPrintFinish(print) |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1638 super.onFinish() |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1639 } |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1640 |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1641 external fun eventHandlerPrintDraw(print: Long, bitmap: Bitmap, page: Int, width: Int, height: Int) |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1642 external fun eventHandlerPrintFinish(print: Long) |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1643 } |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
1644 |
2720
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
1645 class DWSlider |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
1646 @JvmOverloads constructor(context: Context): FrameLayout(context) { |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
1647 val slider: SeekBar = SeekBar(context) |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
1648 |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
1649 init { |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
1650 slider.layoutParams = LayoutParams(LayoutParams.MATCH_PARENT, |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
1651 LayoutParams.WRAP_CONTENT, Gravity.CENTER) |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
1652 addView(slider) |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
1653 } |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
1654 |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
1655 @Synchronized |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
1656 override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) { |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
1657 if(slider.rotation == 90F || slider.rotation == 270F) { |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
1658 val layoutHeight = MeasureSpec.getSize(heightMeasureSpec) |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
1659 // set slider width to layout heigth |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
1660 slider.layoutParams.width = layoutHeight |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
1661 } |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
1662 super.onMeasure(widthMeasureSpec, heightMeasureSpec) |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
1663 if(slider.rotation == 90F || slider.rotation == 270F) { |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
1664 // update layout width to the rotated height of the slider |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
1665 // otherwise the layout remains quadratic |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
1666 setMeasuredDimension(slider.measuredHeight, measuredHeight) |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
1667 } |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
1668 } |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
1669 } |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
1670 |
2520
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1671 class DWSpinButton(context: Context) : AppCompatEditText(context), OnTouchListener { |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1672 var value: Long = 0 |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1673 var minimum: Long = 0 |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1674 var maximum: Long = 65535 |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1675 |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1676 init { |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
1677 setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_media_previous, 0, R.drawable.ic_media_next, 0) |
2520
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1678 setOnTouchListener(this) |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1679 } |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1680 |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1681 override fun onTouch(v: View, event: MotionEvent): Boolean { |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1682 val DRAWABLE_RIGHT = 2 |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1683 val DRAWABLE_LEFT = 0 |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1684 |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1685 if (event.action == MotionEvent.ACTION_UP) { |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1686 if (event.x >= v.width - (v as EditText) |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1687 .compoundDrawables[DRAWABLE_RIGHT].bounds.width() |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1688 ) { |
2527
eec926265888
Android: Use toLongOrNull() whenever converting from string to long...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2526
diff
changeset
|
1689 val newvalue = this.text.toString().toLongOrNull() |
2521
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
1690 |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
1691 if(newvalue != null) { |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
1692 value = newvalue + 1 |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
1693 } else { |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
1694 value += 1 |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
1695 } |
2520
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1696 if(value > maximum) { |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1697 value = maximum |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1698 } |
2521
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
1699 if(value < minimum) { |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
1700 value = minimum |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
1701 } |
2520
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1702 setText(value.toString()) |
2620
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1703 eventHandlerInt(DWEvent.VALUE_CHANGED, value.toInt(), 0, 0, 0) |
2520
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1704 return true |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
1705 } else if (event.x <= v.compoundDrawables[DRAWABLE_LEFT].bounds.width()) { |
2527
eec926265888
Android: Use toLongOrNull() whenever converting from string to long...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2526
diff
changeset
|
1706 val newvalue = this.text.toString().toLongOrNull() |
2521
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
1707 |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
1708 if(newvalue != null) { |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
1709 value = newvalue - 1 |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
1710 } else { |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
1711 value -= 1 |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
1712 } |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
1713 if(value > maximum) { |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
1714 value = maximum |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
1715 } |
2520
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1716 if(value < minimum) { |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1717 value = minimum |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1718 } |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1719 setText(value.toString()) |
2620
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1720 eventHandlerInt(DWEvent.VALUE_CHANGED, value.toInt(), 0, 0, 0) |
2520
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1721 return true |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1722 } |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1723 } |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1724 return false |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1725 } |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1726 |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1727 external fun eventHandlerInt( |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1728 message: Int, |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1729 inta: Int, |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1730 intb: Int, |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1731 intc: Int, |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1732 intd: Int |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1733 ) |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1734 } |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1735 |
2515
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1736 class DWComboBox(context: Context) : AppCompatEditText(context), OnTouchListener, OnItemClickListener { |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1737 var lpw: ListPopupWindow? = null |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1738 var list = mutableListOf<String>() |
2517
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
1739 var selected: Int = -1 |
2515
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1740 |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1741 init { |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
1742 setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.arrow_down_float, 0) |
2515
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1743 setOnTouchListener(this) |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1744 lpw = ListPopupWindow(context) |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1745 lpw!!.setAdapter( |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1746 ArrayAdapter( |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1747 context, |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
1748 R.layout.simple_list_item_1, list |
2515
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1749 ) |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1750 ) |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1751 lpw!!.anchorView = this |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1752 lpw!!.isModal = true |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1753 lpw!!.setOnItemClickListener(this) |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1754 } |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1755 |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1756 override fun onItemClick(parent: AdapterView<*>?, view: View, position: Int, id: Long) { |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1757 val item = list[position] |
2517
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
1758 selected = position |
2515
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1759 setText(item) |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1760 lpw!!.dismiss() |
2620
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1761 eventHandlerInt(DWEvent.LIST_SELECT, position, 0, 0, 0) |
2515
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1762 } |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1763 |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1764 override fun onTouch(v: View, event: MotionEvent): Boolean { |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1765 val DRAWABLE_RIGHT = 2 |
2520
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
1766 |
2515
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1767 if (event.action == MotionEvent.ACTION_UP) { |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1768 if (event.x >= v.width - (v as EditText) |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1769 .compoundDrawables[DRAWABLE_RIGHT].bounds.width() |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1770 ) { |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1771 lpw!!.show() |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1772 return true |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1773 } |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1774 } |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1775 return false |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1776 } |
2517
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
1777 |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
1778 external fun eventHandlerInt( |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
1779 message: Int, |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
1780 inta: Int, |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
1781 intb: Int, |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
1782 intc: Int, |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
1783 intd: Int |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
1784 ) |
2515
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1785 } |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
1786 |
2519
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
1787 class DWListBox(context: Context) : ListView(context), OnItemClickListener { |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
1788 var list = mutableListOf<String>() |
2753
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
1789 var multiple = mutableListOf<Int>() |
2519
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
1790 var selected: Int = -1 |
2677
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
1791 var colorFore: Int? = null |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
1792 var colorBack: Int? = null |
2753
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
1793 var colorSelected: Int = Color.DKGRAY |
2519
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
1794 |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
1795 init { |
2753
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
1796 adapter = object : ArrayAdapter<String>( |
2519
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
1797 context, |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
1798 R.layout.simple_list_item_1, list |
2753
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
1799 ) { |
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
1800 override fun getView(pos: Int, view: View?, parent: ViewGroup): View { |
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
1801 val thisview = super.getView(pos, view, parent) |
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
1802 val textview = thisview as TextView |
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
1803 if (colorFore != null) { |
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
1804 textview.setTextColor(colorFore!!) |
2677
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
1805 } |
2753
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
1806 if (colorBack != null) { |
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
1807 textview.setBackgroundColor(colorBack!!) |
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
1808 } |
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
1809 return thisview |
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
1810 } |
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
1811 } |
2756
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
1812 colorSelected = getPlatformSelectionColor(context) |
2556
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
1813 onItemClickListener = this |
2519
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
1814 } |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
1815 |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
1816 override fun onItemClick(parent: AdapterView<*>?, view: View, position: Int, id: Long) { |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
1817 selected = position |
2753
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
1818 if(this.choiceMode == ListView.CHOICE_MODE_MULTIPLE) { |
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
1819 if(multiple.contains(position)) { |
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
1820 multiple.remove(position) |
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
1821 view.setBackgroundColor(Color.TRANSPARENT) |
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
1822 } else { |
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
1823 multiple.add(position) |
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
1824 view.setBackgroundColor(colorSelected) |
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
1825 } |
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
1826 } |
2620
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1827 eventHandlerInt(DWEvent.LIST_SELECT, position, 0, 0, 0) |
2519
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
1828 } |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
1829 |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
1830 external fun eventHandlerInt( |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
1831 message: Int, |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
1832 inta: Int, |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
1833 intb: Int, |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
1834 intc: Int, |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
1835 intd: Int |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
1836 ) |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
1837 } |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
1838 |
2530
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
1839 class DWRender(context: Context) : View(context) { |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
1840 var cachedCanvas: Canvas? = null |
2547
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
1841 var typeface: Typeface? = null |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
1842 var fontsize: Float? = null |
2608
a11522c30345
Android: Add initial code to handle button presses and long clicks on DWRender.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2607
diff
changeset
|
1843 var evx: Float = 0f |
a11522c30345
Android: Add initial code to handle button presses and long clicks on DWRender.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2607
diff
changeset
|
1844 var evy: Float = 0f |
2611
ed2c4a503666
Android: Implement button release and motion notify events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2608
diff
changeset
|
1845 var button: Int = 1 |
2530
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
1846 |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
1847 override fun onSizeChanged(width: Int, height: Int, oldWidth: Int, oldHeight: Int) { |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
1848 super.onSizeChanged(width, height, oldWidth, oldHeight) |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
1849 // Send DW_SIGNAL_CONFIGURE |
2620
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1850 eventHandlerInt(DWEvent.CONFIGURE, width, height, 0, 0) |
2530
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
1851 } |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
1852 |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
1853 override fun onDraw(canvas: Canvas) { |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
1854 super.onDraw(canvas) |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
1855 cachedCanvas = canvas |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
1856 // Send DW_SIGNAL_EXPOSE |
2620
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
1857 eventHandlerInt(DWEvent.EXPOSE, 0, 0, this.width, this.height) |
2530
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
1858 cachedCanvas = null |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
1859 } |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
1860 |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
1861 external fun eventHandlerInt( |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
1862 message: Int, |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
1863 inta: Int, |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
1864 intb: Int, |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
1865 intc: Int, |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
1866 intd: Int |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
1867 ) |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
1868 } |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
1869 |
2526
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1870 class DWFileChooser(private val activity: Activity) { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1871 private val list: ListView = ListView(activity) |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1872 private val dialog: Dialog = Dialog(activity) |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1873 private var currentPath: File? = null |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1874 |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1875 // filter on file extension |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1876 private var extension: String? = null |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1877 fun setExtension(extension: String?) { |
2708
3a7dcc0ae08b
Android: Implement dw_mle_search(). Also revert lowercase() change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2707
diff
changeset
|
1878 this.extension = extension?.toLowerCase(Locale.ROOT) |
2526
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1879 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1880 |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1881 // file selection event handling |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1882 interface FileSelectedListener { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1883 fun fileSelected(file: File?) |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1884 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1885 |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1886 fun setFileListener(fileListener: FileSelectedListener?): DWFileChooser { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1887 this.fileListener = fileListener |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1888 return this |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1889 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1890 |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1891 private var fileListener: FileSelectedListener? = null |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1892 fun showDialog() { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1893 dialog.show() |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1894 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1895 |
2527
eec926265888
Android: Use toLongOrNull() whenever converting from string to long...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2526
diff
changeset
|
1896 /* |
2526
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1897 * Sort, filter and display the files for the given path. |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1898 */ |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1899 private fun refresh(path: File?) { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1900 currentPath = path |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1901 if (path != null) { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1902 if (path.exists()) { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1903 val dirs = path.listFiles { file -> file.isDirectory && file.canRead() } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1904 val files = path.listFiles { file -> |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1905 if (!file.isDirectory) { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1906 if (!file.canRead()) { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1907 false |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1908 } else if (extension == null) { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1909 true |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1910 } else { |
2708
3a7dcc0ae08b
Android: Implement dw_mle_search(). Also revert lowercase() change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2707
diff
changeset
|
1911 file.name.toLowerCase(Locale.ROOT).endsWith(extension!!) |
2526
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1912 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1913 } else { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1914 false |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1915 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1916 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1917 |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1918 // convert to an array |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1919 var i = 0 |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1920 val fileList: Array<String?> |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1921 var filecount = 0 |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1922 var dircount = 0 |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1923 if(files != null) { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1924 filecount = files.size |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1925 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1926 if(dirs != null) { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1927 dircount = dirs.size |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1928 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1929 if (path.parentFile == null) { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1930 fileList = arrayOfNulls(dircount + filecount) |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1931 } else { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1932 fileList = arrayOfNulls(dircount + filecount + 1) |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1933 fileList[i++] = PARENT_DIR |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1934 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1935 if(dirs != null) { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1936 Arrays.sort(dirs) |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1937 for (dir in dirs) { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1938 fileList[i++] = dir.name |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1939 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1940 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1941 if(files != null) { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1942 Arrays.sort(files) |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1943 for (file in files) { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1944 fileList[i++] = file.name |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1945 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1946 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1947 |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1948 // refresh the user interface |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1949 dialog.setTitle(currentPath!!.path) |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1950 list.adapter = object : ArrayAdapter<Any?>( |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1951 activity, |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1952 R.layout.simple_list_item_1, fileList |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1953 ) { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1954 override fun getView(pos: Int, view: View?, parent: ViewGroup): View { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1955 val thisview = super.getView(pos, view, parent) |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1956 (thisview as TextView).isSingleLine = true |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1957 return thisview |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1958 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1959 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1960 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1961 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1962 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1963 |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1964 /** |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1965 * Convert a relative filename into an actual File object. |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1966 */ |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1967 private fun getChosenFile(fileChosen: String): File? { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1968 return if (fileChosen == PARENT_DIR) { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1969 currentPath!!.parentFile |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1970 } else { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1971 File(currentPath, fileChosen) |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1972 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1973 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1974 |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1975 companion object { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1976 private const val PARENT_DIR = ".." |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1977 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1978 |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1979 init { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1980 list.onItemClickListener = |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1981 OnItemClickListener { parent, view, which, id -> |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1982 val fileChosen = list.getItemAtPosition(which) as String |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1983 val chosenFile: File? = getChosenFile(fileChosen) |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1984 if (chosenFile != null) { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1985 if (chosenFile.isDirectory) { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1986 refresh(chosenFile) |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1987 } else { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1988 if (fileListener != null) { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1989 fileListener!!.fileSelected(chosenFile) |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1990 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1991 dialog.dismiss() |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1992 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1993 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1994 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1995 dialog.setContentView(list) |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1996 dialog.window?.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT) |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1997 refresh(Environment.getExternalStorageDirectory()) |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1998 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
1999 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
2000 |
2543
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2001 // On Android we can't pre-create submenus... |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2002 // So create our own placeholder classes, and create the actual menus |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2003 // on demand when required by Android |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2004 class DWMenuItem |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2005 { |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2006 var title: String? = null |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2007 var menu: DWMenu? = null |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2008 var submenu: DWMenu? = null |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2009 var checked: Boolean = false |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2010 var check: Boolean = false |
2546
897d94c20365
Android: Implement disabled menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2545
diff
changeset
|
2011 var enabled: Boolean = true |
2543
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2012 var menuitem: MenuItem? = null |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2013 var submenuitem: SubMenu? = null |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2014 var id: Int = 0 |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2015 } |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2016 |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2017 class DWMenu { |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2018 var menu: Menu? = null |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2019 var children = mutableListOf<DWMenuItem>() |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2020 var id: Int = 0 |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2021 |
2666
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2022 fun createMenu(newmenu: Menu?, recreate: Boolean) { |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2023 var refresh = recreate |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2024 |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2025 if(newmenu != null) { |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2026 if(newmenu != menu) { |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2027 menu = newmenu |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2028 refresh = true |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2029 } |
2543
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2030 } |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2031 if(menu != null) { |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
2032 var group = 0 |
2544
dbfcc0e357d6
Android: Clean up the menus... add separator, remove tildes and implement callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2543
diff
changeset
|
2033 |
2666
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2034 if(refresh) { |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2035 menu!!.clear() |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2036 } |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2037 |
2544
dbfcc0e357d6
Android: Clean up the menus... add separator, remove tildes and implement callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2543
diff
changeset
|
2038 // Enable group dividers for separators |
2788
8a4f162810c2
Android: During dw_file_browse() request read/write access to external
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2785
diff
changeset
|
2039 MenuCompat.setGroupDividerEnabled(menu!!, true) |
2544
dbfcc0e357d6
Android: Clean up the menus... add separator, remove tildes and implement callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2543
diff
changeset
|
2040 |
2543
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2041 for (menuitem in children) { |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2042 // Submenus on Android can't have submenus, so stop at depth 1 |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2043 if (menuitem.submenu != null && menu !is SubMenu) { |
2666
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2044 if(menuitem.submenuitem == null || refresh) { |
2544
dbfcc0e357d6
Android: Clean up the menus... add separator, remove tildes and implement callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2543
diff
changeset
|
2045 menuitem.submenuitem = menu?.addSubMenu(group, menuitem.id, 0, menuitem.title) |
2543
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2046 } |
2666
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2047 menuitem.submenu!!.createMenu(menuitem.submenuitem, refresh) |
2543
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2048 } else if(menuitem.submenu == null) { |
2544
dbfcc0e357d6
Android: Clean up the menus... add separator, remove tildes and implement callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2543
diff
changeset
|
2049 if(menuitem.title!!.isEmpty()) { |
dbfcc0e357d6
Android: Clean up the menus... add separator, remove tildes and implement callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2543
diff
changeset
|
2050 group += 1 |
2666
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2051 } else if(menuitem.menuitem == null || refresh) { |
2544
dbfcc0e357d6
Android: Clean up the menus... add separator, remove tildes and implement callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2543
diff
changeset
|
2052 menuitem.menuitem = menu?.add(group, menuitem.id, 0, menuitem.title) |
2545
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2053 menuitem.menuitem!!.isCheckable = menuitem.check |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2054 menuitem.menuitem!!.isChecked = menuitem.checked |
2546
897d94c20365
Android: Implement disabled menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2545
diff
changeset
|
2055 menuitem.menuitem!!.isEnabled = menuitem.enabled |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
2056 menuitem.menuitem!!.setOnMenuItemClickListener { item: MenuItem? -> |
2806
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
2057 // Toggle the check automatically |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
2058 if(menuitem.menuitem!!.isCheckable) { |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
2059 menuitem.menuitem!!.isChecked = !menuitem.menuitem!!.isChecked |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
2060 menuitem.checked = menuitem.menuitem!!.isChecked |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
2061 } |
2620
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
2062 eventHandlerSimple(menuitem, DWEvent.CLICKED) |
2544
dbfcc0e357d6
Android: Clean up the menus... add separator, remove tildes and implement callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2543
diff
changeset
|
2063 true |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
2064 } |
2543
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2065 } |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2066 } |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2067 } |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2068 } |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2069 } |
2544
dbfcc0e357d6
Android: Clean up the menus... add separator, remove tildes and implement callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2543
diff
changeset
|
2070 |
dbfcc0e357d6
Android: Clean up the menus... add separator, remove tildes and implement callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2543
diff
changeset
|
2071 external fun eventHandlerSimple(item: DWMenuItem, message: Int) |
2543
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2072 } |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2073 |
2555
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2074 // Class for storing container data |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2075 class DWContainerModel { |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2076 var columns = mutableListOf<String?>() |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2077 var types = mutableListOf<Int>() |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2078 var data = mutableListOf<Any?>() |
2558
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2079 var rowdata = mutableListOf<Long>() |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2080 var rowtitle = mutableListOf<String?>() |
2560
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
2081 var querypos: Int = -1 |
2555
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2082 |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2083 fun numberOfColumns(): Int |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2084 { |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2085 return columns.size |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2086 } |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2087 |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2088 fun numberOfRows(): Int |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2089 { |
2556
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
2090 if(columns.size > 0) { |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
2091 return data.size / columns.size |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
2092 } |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
2093 return 0 |
2555
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2094 } |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2095 |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2096 fun getColumnType(column: Int): Int |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2097 { |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2098 if(column < types.size) { |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2099 return types[column] |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2100 } |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2101 return -1 |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2102 } |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2103 |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2104 fun getRowAndColumn(row: Int, column: Int): Any? |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2105 { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
2106 val index: Int = (row * columns.size) + column |
2555
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2107 |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2108 if(index > -1 && index < data.size) { |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2109 return data[index] |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2110 } |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2111 return null |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2112 } |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2113 |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2114 fun setRowAndColumn(row: Int, column: Int, obj: Any?) |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2115 { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
2116 val index: Int = (row * columns.size) + column |
2555
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2117 |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2118 if(index > -1 && index < data.size && column < types.size) { |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2119 // Verify the data matches the column type |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2120 if((((types[column] and 1) != 0) && (obj is Drawable)) || |
2834
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2121 (((types[column] and (1 shl 2)) != 0) && (obj is Int || obj is Long))) { |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2122 data[index] = obj |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2123 } |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2124 // If it isn't one of those special types, image or numeric...use string |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2125 else if(((types[column] and 1) == 0) && ((types[column] and (1 shl 2)) == 0) |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2126 && obj is String) { |
2555
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2127 data[index] = obj |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2128 } |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2129 } |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2130 } |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2131 |
2558
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2132 fun changeRowData(row: Int, rdata: Long) |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2133 { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2134 if(row > -1 && row < rowdata.size) { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2135 rowdata[row] = rdata |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2136 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2137 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2138 |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2139 fun getRowData(row: Int): Long |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2140 { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2141 if(row > -1 && row < rowdata.size) { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2142 return rowdata[row] |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2143 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2144 return 0 |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2145 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2146 |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2147 fun changeRowTitle(row: Int, title: String?) |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2148 { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2149 if(row > -1 && row < rowtitle.size) { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2150 rowtitle[row] = title |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2151 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2152 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2153 |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2154 fun getRowTitle(row: Int): String? |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2155 { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2156 if(row > -1 && row < rowtitle.size) { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2157 return rowtitle[row] |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2158 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2159 return null |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2160 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2161 |
2555
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2162 fun addColumn(title: String?, type: Int) |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2163 { |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2164 columns.add(title) |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2165 types.add(type) |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2166 // If we change the columns we have to invalidate the data |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2167 data.clear() |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2168 } |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2169 |
2558
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2170 fun deleteRows(count: Int) |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2171 { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2172 if(count < rowdata.size) { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2173 for(i in 0 until count) { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2174 for(j in 0 until columns.size) { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2175 data.removeAt(0) |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2176 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2177 rowdata.removeAt(0) |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2178 rowtitle.removeAt(0) |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2179 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2180 } else { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2181 data.clear() |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2182 rowdata.clear() |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2183 rowtitle.clear() |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2184 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2185 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2186 |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2187 fun deleteRowByTitle(title: String?) |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2188 { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2189 for(i in 0 until rowtitle.size) { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2190 if(rowtitle[i] != null && rowtitle[i] == title) { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2191 for(j in 0 until columns.size) { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2192 data.removeAt(i * columns.size) |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2193 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2194 rowdata.removeAt(i) |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2195 rowtitle.removeAt(i) |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2196 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2197 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2198 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2199 |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2200 fun deleteRowByData(rdata: Long) |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2201 { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2202 for(i in 0 until rowdata.size) { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2203 if(rowdata[i] == rdata) { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2204 for(j in 0 until columns.size) { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2205 data.removeAt(i * columns.size) |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2206 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2207 rowdata.removeAt(i) |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2208 rowtitle.removeAt(i) |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2209 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2210 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2211 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2212 |
2709
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
2213 fun positionByTitle(title: String?): Int |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
2214 { |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
2215 for(i in 0 until rowtitle.size) { |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
2216 if(rowtitle[i] != null && rowtitle[i] == title) { |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
2217 return i |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
2218 } |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
2219 } |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
2220 return -1 |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
2221 } |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
2222 |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
2223 fun positionByData(rdata: Long): Int |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
2224 { |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
2225 for(i in 0 until rowdata.size) { |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
2226 if (rowdata[i] == rdata) { |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
2227 return i |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
2228 } |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
2229 } |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
2230 return -1 |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
2231 } |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
2232 |
2556
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
2233 fun addRows(count: Int): Long |
2555
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2234 { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
2235 val startRow: Long = numberOfRows().toLong() |
2556
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
2236 |
2558
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2237 for(i in 0 until count) |
2555
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2238 { |
2558
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2239 for(j in 0 until columns.size) |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2240 { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2241 // Fill in with nulls to be set later |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2242 data.add(null) |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2243 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2244 rowdata.add(0) |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2245 rowtitle.add(null) |
2555
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2246 } |
2556
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
2247 return startRow |
2555
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2248 } |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2249 |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2250 fun clear() |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2251 { |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2252 data.clear() |
2558
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2253 rowdata.clear() |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
2254 rowtitle.clear() |
2555
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2255 } |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2256 } |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2257 |
2841
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2258 class DWContainerRow : RelativeLayout, Checkable { |
2752
d355c6abbba6
Android: Add a DWContainerRow class implmenting LinearLayout and Checkable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2751
diff
changeset
|
2259 private var mChecked = false |
2756
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2260 private var colorSelection = Color.DKGRAY |
2841
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2261 var imageview: ImageView = ImageView(context) |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2262 var text: TextView = TextView(context) |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2263 var stack: LinearLayout = LinearLayout(context) |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2264 |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2265 fun setup(context: Context?) { |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2266 val wrap = RelativeLayout.LayoutParams.WRAP_CONTENT |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2267 val match = RelativeLayout.LayoutParams.MATCH_PARENT |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2268 var lp = RelativeLayout.LayoutParams(wrap, wrap) |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2269 imageview.id = View.generateViewId() |
2842
22dd09e90112
Android: Improve appearance of the container row by adding a 4 point margin.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2841
diff
changeset
|
2270 lp.setMargins(4) |
2841
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2271 this.addView(imageview, lp) |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2272 lp = RelativeLayout.LayoutParams(match, wrap) |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2273 text.id = View.generateViewId() |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2274 lp.addRule(RelativeLayout.RIGHT_OF, imageview.id); |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2275 this.addView(text, lp) |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2276 lp = RelativeLayout.LayoutParams(match, wrap) |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2277 stack.id = View.generateViewId() |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2278 stack.orientation = LinearLayout.HORIZONTAL |
2843
bacac2eb1677
Android: Fix container rows not being selectable in DW_CONTAINER_MODE_MULTI
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2842
diff
changeset
|
2279 stack.descendantFocusability = LinearLayout.FOCUS_BLOCK_DESCENDANTS |
2841
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2280 lp.addRule(RelativeLayout.BELOW, imageview.id); |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2281 lp.addRule(RelativeLayout.BELOW, text.id); |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2282 this.addView(stack, lp) |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2283 } |
2756
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2284 |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2285 constructor(context: Context?) : super(context) { |
2841
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2286 setup(context) |
2756
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2287 colorSelection = context?.let { getPlatformSelectionColor(it) }!! |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2288 } |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2289 constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) { |
2841
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2290 setup(context) |
2756
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2291 colorSelection = context?.let { getPlatformSelectionColor(it) }!! |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2292 } |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2293 constructor(context: Context?, attrs: AttributeSet?, defStyle: Int) : super(context, attrs, defStyle) { |
2841
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2294 setup(context) |
2756
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2295 colorSelection = context?.let { getPlatformSelectionColor(it) }!! |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2296 } |
2752
d355c6abbba6
Android: Add a DWContainerRow class implmenting LinearLayout and Checkable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2751
diff
changeset
|
2297 |
2754
e256bd8628ba
Andrdoi: Attempt to fix a number of issues querying containers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2753
diff
changeset
|
2298 fun updateBackground() { |
e256bd8628ba
Andrdoi: Attempt to fix a number of issues querying containers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2753
diff
changeset
|
2299 if(mChecked) { |
2756
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2300 this.setBackgroundColor(colorSelection) |
2754
e256bd8628ba
Andrdoi: Attempt to fix a number of issues querying containers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2753
diff
changeset
|
2301 } else { |
e256bd8628ba
Andrdoi: Attempt to fix a number of issues querying containers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2753
diff
changeset
|
2302 this.setBackgroundColor(Color.TRANSPARENT) |
e256bd8628ba
Andrdoi: Attempt to fix a number of issues querying containers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2753
diff
changeset
|
2303 } |
e256bd8628ba
Andrdoi: Attempt to fix a number of issues querying containers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2753
diff
changeset
|
2304 } |
e256bd8628ba
Andrdoi: Attempt to fix a number of issues querying containers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2753
diff
changeset
|
2305 |
2752
d355c6abbba6
Android: Add a DWContainerRow class implmenting LinearLayout and Checkable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2751
diff
changeset
|
2306 override fun setChecked(b: Boolean) { |
d355c6abbba6
Android: Add a DWContainerRow class implmenting LinearLayout and Checkable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2751
diff
changeset
|
2307 mChecked = b |
2754
e256bd8628ba
Andrdoi: Attempt to fix a number of issues querying containers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2753
diff
changeset
|
2308 updateBackground() |
2752
d355c6abbba6
Android: Add a DWContainerRow class implmenting LinearLayout and Checkable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2751
diff
changeset
|
2309 } |
d355c6abbba6
Android: Add a DWContainerRow class implmenting LinearLayout and Checkable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2751
diff
changeset
|
2310 |
d355c6abbba6
Android: Add a DWContainerRow class implmenting LinearLayout and Checkable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2751
diff
changeset
|
2311 override fun isChecked(): Boolean { |
d355c6abbba6
Android: Add a DWContainerRow class implmenting LinearLayout and Checkable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2751
diff
changeset
|
2312 return mChecked |
d355c6abbba6
Android: Add a DWContainerRow class implmenting LinearLayout and Checkable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2751
diff
changeset
|
2313 } |
d355c6abbba6
Android: Add a DWContainerRow class implmenting LinearLayout and Checkable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2751
diff
changeset
|
2314 |
d355c6abbba6
Android: Add a DWContainerRow class implmenting LinearLayout and Checkable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2751
diff
changeset
|
2315 override fun toggle() { |
d355c6abbba6
Android: Add a DWContainerRow class implmenting LinearLayout and Checkable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2751
diff
changeset
|
2316 mChecked = !mChecked |
2754
e256bd8628ba
Andrdoi: Attempt to fix a number of issues querying containers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2753
diff
changeset
|
2317 updateBackground() |
2752
d355c6abbba6
Android: Add a DWContainerRow class implmenting LinearLayout and Checkable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2751
diff
changeset
|
2318 } |
d355c6abbba6
Android: Add a DWContainerRow class implmenting LinearLayout and Checkable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2751
diff
changeset
|
2319 } |
d355c6abbba6
Android: Add a DWContainerRow class implmenting LinearLayout and Checkable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2751
diff
changeset
|
2320 |
2555
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2321 class DWContainerAdapter(c: Context) : BaseAdapter() |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2322 { |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2323 private var context = c |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2324 var model = DWContainerModel() |
2563
56183bef6793
Android: Use ItemClick for the ITEM_SELECT event and the API 23
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2562
diff
changeset
|
2325 var selectedItem: Int = -1 |
2834
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2326 var contMode: Int = 0 |
2580
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
2327 var oddColor: Int? = null |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
2328 var evenColor: Int? = null |
2677
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
2329 var foreColor: Int? = null |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
2330 var backColor: Int? = null |
2613
72f1141c07aa
Android: Standardize DWContainer behavior part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2611
diff
changeset
|
2331 var lastClick: Long = 0 |
72f1141c07aa
Android: Standardize DWContainer behavior part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2611
diff
changeset
|
2332 var lastClickRow: Int = -1 |
2555
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2333 |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2334 override fun getCount(): Int { |
2567
19d82c1f135f
Android: Fix incorrect display of first container entry with the new layout code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2565
diff
changeset
|
2335 return model.numberOfRows() |
2555
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2336 } |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2337 |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2338 override fun getItem(position: Int): Any? { |
2565
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2339 return model.getRowAndColumn(position, 0) |
2555
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2340 } |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2341 |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2342 override fun getItemId(position: Int): Long { |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2343 return position.toLong() |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2344 } |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2345 |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2346 override fun getView(position: Int, view: View?, parent: ViewGroup): View { |
2752
d355c6abbba6
Android: Add a DWContainerRow class implmenting LinearLayout and Checkable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2751
diff
changeset
|
2347 var rowView: DWContainerRow? = view as DWContainerRow? |
2565
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2348 var displayColumns = model.numberOfColumns() |
2835
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2349 var isFilesystem: Boolean = false |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2350 var extraColumns: Int = 1 |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2351 |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2352 // If column 1 is bitmap and column 2 is text... |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2353 if(displayColumns > 1 && (model.getColumnType(0) and 1) != 0 && |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2354 (model.getColumnType(1) and (1 shl 1)) != 0) { |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2355 // We are a filesystem style container... |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2356 isFilesystem = true |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2357 extraColumns = 2 |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2358 } |
2565
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2359 |
2834
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2360 // In default mode (0), limit the columns to 1 or 2 |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2361 if(contMode == 0) { |
2835
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2362 // depending on if we are filesystem style or not |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2363 displayColumns = extraColumns |
2565
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2364 } |
2561
f28d7d0ca5ed
Android: Attempt at implementing updating the container after insertion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2560
diff
changeset
|
2365 |
f28d7d0ca5ed
Android: Attempt at implementing updating the container after insertion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2560
diff
changeset
|
2366 // If the view passed in is null we need to create the layout |
f28d7d0ca5ed
Android: Attempt at implementing updating the container after insertion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2560
diff
changeset
|
2367 if(rowView == null) { |
2752
d355c6abbba6
Android: Add a DWContainerRow class implmenting LinearLayout and Checkable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2751
diff
changeset
|
2368 rowView = DWContainerRow(context) |
2565
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2369 |
2834
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2370 // Handle DW_CONTAINER_MODE_MULTI by setting the orientation vertical |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2371 if(contMode == 2) { |
2841
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2372 rowView.stack.orientation = LinearLayout.VERTICAL |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2373 rowView.stack.gravity = Gravity.LEFT |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2374 } |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2375 |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2376 // If there are extra columns and we are not in default mode... |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2377 // Add the columns to the stack (LinearLayout) |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2378 for(i in extraColumns until displayColumns) { |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2379 var content = model.getRowAndColumn(position, i) |
2565
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2380 |
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2381 // Image |
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2382 if((model.getColumnType(i) and 1) != 0) { |
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2383 val imageview = ImageView(context) |
2580
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
2384 val params = LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
2385 LinearLayout.LayoutParams.WRAP_CONTENT) |
2834
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2386 if(contMode == 2) |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2387 params.gravity = Gravity.LEFT |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2388 else |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2389 params.gravity = Gravity.CENTER |
2580
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
2390 imageview.layoutParams = params |
2565
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2391 imageview.id = View.generateViewId() |
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2392 if (content is Drawable) { |
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2393 imageview.setImageDrawable(content) |
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2394 } |
2841
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2395 rowView.stack.addView(imageview) |
2565
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2396 } else { |
2835
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2397 // Everything else is displayed as text |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2398 var textview: TextView? = null |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2399 |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2400 // Special case for DW_CONTAINER_MODE_MULTI |
2841
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2401 if(contMode == 2) { |
2835
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2402 // textview will be a text button instead |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2403 textview = Button(context) |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2404 } else { |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2405 textview = TextView(context) |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2406 } |
2834
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2407 var hsize = LinearLayout.LayoutParams.WRAP_CONTENT |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2408 if(contMode == 0) |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2409 hsize = LinearLayout.LayoutParams.MATCH_PARENT |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2410 val params = LinearLayout.LayoutParams(hsize, LinearLayout.LayoutParams.WRAP_CONTENT) |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2411 if(contMode == 2) |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2412 params.gravity = Gravity.LEFT |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2413 else |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2414 params.gravity = Gravity.CENTER |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2415 // Multi-line (vertical) mode does not require horizontal margins |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2416 if(contMode != 2) |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2417 params.setMargins(5, 0, 5, 0) |
2580
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
2418 textview.layoutParams = params |
2565
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2419 textview.id = View.generateViewId() |
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2420 if (content is String) { |
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2421 textview.text = content |
2834
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2422 } else if(content is Long || content is Int) { |
2565
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2423 textview.text = content.toString() |
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2424 } |
2835
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2425 textview.setOnClickListener { |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2426 var columnClicked: Int = i |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2427 if(isFilesystem) { |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2428 columnClicked = i - 1 |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2429 } |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2430 eventHandlerInt(parent, DWEvent.COLUMN_CLICK, columnClicked, 0, 0, 0) |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2431 } |
2841
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2432 rowView.stack.addView(textview) |
2561
f28d7d0ca5ed
Android: Attempt at implementing updating the container after insertion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2560
diff
changeset
|
2433 } |
2555
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2434 } |
2561
f28d7d0ca5ed
Android: Attempt at implementing updating the container after insertion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2560
diff
changeset
|
2435 } else { |
f28d7d0ca5ed
Android: Attempt at implementing updating the container after insertion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2560
diff
changeset
|
2436 // Otherwise we just need to update the existing layout |
2841
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2437 for(i in extraColumns until displayColumns) { |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2438 var content = model.getRowAndColumn(position, i) |
2565
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2439 |
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2440 // Image |
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2441 if((model.getColumnType(i) and 1) != 0) { |
2841
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2442 val imageview = rowView.stack.getChildAt(i - extraColumns) |
2565
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2443 |
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2444 if (imageview is ImageView && content is Drawable) { |
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2445 imageview.setImageDrawable(content) |
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2446 } |
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2447 } else { |
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2448 // Text |
2841
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2449 val textview = rowView.stack.getChildAt(i - extraColumns) |
2565
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2450 |
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2451 if (textview is TextView) { |
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2452 if (content is String) { |
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2453 textview.text = content |
2834
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2454 } else if (content is Long || content is Int) { |
2565
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2455 textview.text = content.toString() |
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2456 } |
2677
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
2457 if(foreColor != null) { |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
2458 textview.setTextColor(foreColor!!) |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
2459 } |
2565
5463801a888f
Android: Attempt to rewrite container layout code in a more generic manner.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2564
diff
changeset
|
2460 } |
2561
f28d7d0ca5ed
Android: Attempt at implementing updating the container after insertion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2560
diff
changeset
|
2461 } |
2555
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2462 } |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2463 } |
2841
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2464 |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2465 var content = model.getRowAndColumn(position, 0) |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2466 |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2467 // Setup the built-in Image and Text based on if we are fileystem mode or not |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2468 if(isFilesystem) { |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2469 if(content is Drawable) { |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2470 rowView.imageview.setImageDrawable(content) |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2471 } |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2472 content = model.getRowAndColumn(position, 1) |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2473 if (content is String) { |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2474 rowView.text.text = content |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2475 } else if(content is Long || content is Int) { |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2476 rowView.text.text = content.toString() |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2477 } |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2478 } else { |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2479 if(content is Drawable) { |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2480 rowView.imageview.setImageDrawable(content) |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2481 } else if (content is String) { |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2482 rowView.text.text = content |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2483 } else if(content is Long || content is Int) { |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2484 rowView.text.text = content.toString() |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2485 } |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2486 } |
3e88b961f801
Android: Rewrite DWContainerRow using RelativeLayout and a LinearLayout stack.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2835
diff
changeset
|
2487 |
2580
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
2488 // Handle row stripe |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
2489 if (position % 2 == 0) { |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
2490 if(evenColor != null) { |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
2491 rowView.setBackgroundColor(evenColor!!) |
2677
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
2492 } else if(backColor != null) { |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
2493 rowView.setBackgroundColor(backColor!!) |
2580
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
2494 } |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
2495 } else { |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
2496 if(oddColor != null) { |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
2497 rowView.setBackgroundColor(oddColor!!) |
2677
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
2498 } else if(backColor != null) { |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
2499 rowView.setBackgroundColor(backColor!!) |
2580
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
2500 } |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
2501 } |
2555
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2502 return rowView |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2503 } |
2835
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2504 external fun eventHandlerInt( |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2505 obj1: View, |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2506 message: Int, |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2507 inta: Int, |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2508 intb: Int, |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2509 intc: Int, |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2510 intd: Int |
1f0017a07771
Android: Implement DW_SIGNAL_COLUMN_CLICK for containers in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2834
diff
changeset
|
2511 ) |
2555
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2512 } |
d7d163d70763
Android: Initial implementations of DWContainerModel and DWContainerAdapter.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2554
diff
changeset
|
2513 |
2702
4f12dc8e8f18
Android: Implement dw_mle_set_auto_complete() in the same way as iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2701
diff
changeset
|
2514 private class DWMLE(c: Context): AppCompatEditText(c) { |
2701
9df2c11f020f
Android: Fix dw_mle_set_word_wrap() and dw_mle_set_cursor().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2694
diff
changeset
|
2515 protected override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) { |
9df2c11f020f
Android: Fix dw_mle_set_word_wrap() and dw_mle_set_cursor().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2694
diff
changeset
|
2516 if(!isHorizontalScrollBarEnabled) { |
9df2c11f020f
Android: Fix dw_mle_set_word_wrap() and dw_mle_set_cursor().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2694
diff
changeset
|
2517 this.maxWidth = w |
9df2c11f020f
Android: Fix dw_mle_set_word_wrap() and dw_mle_set_cursor().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2694
diff
changeset
|
2518 } else { |
9df2c11f020f
Android: Fix dw_mle_set_word_wrap() and dw_mle_set_cursor().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2694
diff
changeset
|
2519 this.maxWidth = -1 |
9df2c11f020f
Android: Fix dw_mle_set_word_wrap() and dw_mle_set_cursor().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2694
diff
changeset
|
2520 } |
9df2c11f020f
Android: Fix dw_mle_set_word_wrap() and dw_mle_set_cursor().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2694
diff
changeset
|
2521 super.onSizeChanged(w, h, oldw, oldh) |
9df2c11f020f
Android: Fix dw_mle_set_word_wrap() and dw_mle_set_cursor().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2694
diff
changeset
|
2522 } |
9df2c11f020f
Android: Fix dw_mle_set_word_wrap() and dw_mle_set_cursor().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2694
diff
changeset
|
2523 } |
9df2c11f020f
Android: Fix dw_mle_set_word_wrap() and dw_mle_set_cursor().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2694
diff
changeset
|
2524 |
2756
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2525 fun getPlatformSelectionColor(context: Context): Int { |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2526 val bitmap = BitmapFactory.decodeResource(context.resources, R.drawable.list_selector_background) |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2527 var redBucket: Float = 0f |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2528 var greenBucket: Float = 0f |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2529 var blueBucket: Float = 0f |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2530 var pixelCount: Float = 0f |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2531 |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2532 if(bitmap != null) { |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2533 for (y in 0 until bitmap.height) { |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2534 for (x in 0 until bitmap.width) { |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2535 val c = bitmap.getPixel(x, y) |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2536 pixelCount++ |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2537 redBucket += Color.red(c) |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2538 greenBucket += Color.green(c) |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2539 blueBucket += Color.blue(c) |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2540 } |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2541 } |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2542 |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2543 return Color.rgb( |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2544 (redBucket / pixelCount).toInt(), |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2545 (greenBucket / pixelCount).toInt(), |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2546 (blueBucket / pixelCount).toInt() |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2547 ) |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2548 } |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2549 return Color.GRAY |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2550 } |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2551 |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
2552 class DWindows : AppCompatActivity() { |
2665
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2553 var windowLayout: ViewPager2? = null |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
2554 var threadLock = ReentrantLock() |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
2555 var threadCond = threadLock.newCondition() |
2522
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
2556 var notificationID: Int = 0 |
2551
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
2557 var darkMode: Int = -1 |
2834
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2558 var contMode: Int = 0 |
2614
dbcd9416e9c9
Android: Popup menus on Andoird use an anchor View not the touch location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2613
diff
changeset
|
2559 var lastClickView: View? = null |
2756
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2560 var colorSelection: Int = Color.DKGRAY |
2690
755d9ad07aaf
Android: Fix state exception by calling notifyDataSetChanged() on DWListBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2689
diff
changeset
|
2561 private var appID: String? = null |
2531
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
2562 private var paint = Paint() |
2637
22105f99dd6a
Android: Add support for transparent background color for text drawing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2620
diff
changeset
|
2563 private var bgcolor: Int? = null |
2594
2c15b3d41fe4
Android: Add preliminary new file browser that uses the system ACTION_GET_CONTENT Intent.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2590
diff
changeset
|
2564 private var fileURI: Uri? = null |
2595
6b5057dd6b8e
Android: Experimental change for the new file browser... require it be on secondary...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2594
diff
changeset
|
2565 private var fileLock = ReentrantLock() |
2715
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
2566 private var fileCond = fileLock.newCondition() |
2722
cacde852e2db
Android: Add dialog dismiss and color change handlers to the color chooser.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2720
diff
changeset
|
2567 private var colorLock = ReentrantLock() |
cacde852e2db
Android: Add dialog dismiss and color change handlers to the color chooser.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2720
diff
changeset
|
2568 private var colorCond = colorLock.newCondition() |
cacde852e2db
Android: Add dialog dismiss and color change handlers to the color chooser.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2720
diff
changeset
|
2569 private var colorChosen: Int = 0 |
2665
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2570 // Lists of data for our Windows |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2571 private var windowTitles = mutableListOf<String?>() |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2572 private var windowMenuBars = mutableListOf<DWMenu?>() |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2573 private var windowStyles = mutableListOf<Int>() |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2574 private var windowDefault = mutableListOf<View?>() |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
2575 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
2576 // Our version of runOnUiThread that waits for execution |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
2577 fun waitOnUiThread(runnable: Runnable) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
2578 { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
2579 if(Looper.myLooper() == Looper.getMainLooper()) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
2580 runnable.run() |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
2581 } else { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
2582 threadLock.lock() |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
2583 val ourRunnable = Runnable { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
2584 threadLock.lock() |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
2585 runnable.run() |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
2586 threadCond.signal() |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
2587 threadLock.unlock() |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
2588 } |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
2589 runOnUiThread(ourRunnable) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
2590 threadCond.await() |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
2591 threadLock.unlock() |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
2592 } |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
2593 } |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
2594 |
2658
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2595 // Returns true if the filename is a resource ID (non-zero number) |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2596 // with a image file extension in our DWImageExts list |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2597 private fun isDWResource(filename: String): Boolean { |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2598 val length = filename.length |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2599 |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2600 for (ext in DWImageExts) { |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2601 if (ext.isNotEmpty() && filename.endsWith(ext)) { |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2602 val filebody: String = filename.substring(7, length - ext.length) |
2659
3a14d7fd4b99
Android: Catch NumberFormatException in isDWResource().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2658
diff
changeset
|
2603 try { |
3a14d7fd4b99
Android: Catch NumberFormatException in isDWResource().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2658
diff
changeset
|
2604 if (filebody.toInt() > 0) { |
3a14d7fd4b99
Android: Catch NumberFormatException in isDWResource().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2658
diff
changeset
|
2605 return true |
3a14d7fd4b99
Android: Catch NumberFormatException in isDWResource().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2658
diff
changeset
|
2606 } |
3a14d7fd4b99
Android: Catch NumberFormatException in isDWResource().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2658
diff
changeset
|
2607 } catch(e: NumberFormatException) { |
2658
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2608 } |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2609 } |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2610 } |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2611 return false |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2612 } |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2613 |
2659
3a14d7fd4b99
Android: Catch NumberFormatException in isDWResource().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2658
diff
changeset
|
2614 // Extracts assets/ in the APK to the application cache directory |
2658
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2615 private fun extractAssets() { |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2616 var zipFile: ZipFile? = null |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2617 val targetDir = cacheDir |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2618 |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2619 try { |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2620 zipFile = ZipFile(this.applicationInfo.sourceDir) |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2621 val e: Enumeration<out ZipEntry?> = zipFile.entries() |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2622 while (e.hasMoreElements()) { |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2623 val entry: ZipEntry? = e.nextElement() |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2624 if (entry == null || entry.isDirectory || !entry.name.startsWith("assets/") || |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2625 isDWResource(entry.name)) { |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2626 continue |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2627 } |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2628 val targetFile = File(targetDir, entry.name.substring("assets/".length)) |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2629 targetFile.parentFile!!.mkdirs() |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2630 val tempBuffer = ByteArray(entry.size.toInt()) |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2631 var ais: BufferedInputStream? = null |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2632 var aos: FileOutputStream? = null |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2633 try { |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2634 ais = BufferedInputStream(zipFile.getInputStream(entry)) |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2635 aos = FileOutputStream(targetFile) |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2636 ais.read(tempBuffer) |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2637 aos.write(tempBuffer) |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2638 } catch (e: IOException) { |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2639 } finally { |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2640 ais?.close() |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2641 aos?.close() |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2642 } |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2643 } |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2644 } catch (e: IOException) { |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2645 } finally { |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2646 zipFile?.close() |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2647 } |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2648 } |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2649 |
2498
4ae2b3b77f25
Android: Get the notebook control functional. Disable recylcing of the views.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2497
diff
changeset
|
2650 // We only want to call this once when the app starts up |
4ae2b3b77f25
Android: Get the notebook control functional. Disable recylcing of the views.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2497
diff
changeset
|
2651 // By default Android will call onCreate for rotation and other |
4ae2b3b77f25
Android: Get the notebook control functional. Disable recylcing of the views.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2497
diff
changeset
|
2652 // changes. This is incompatible with Dynamic Windows... |
4ae2b3b77f25
Android: Get the notebook control functional. Disable recylcing of the views.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2497
diff
changeset
|
2653 // Make sure the following is in your AndroidManifest.xml |
4ae2b3b77f25
Android: Get the notebook control functional. Disable recylcing of the views.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2497
diff
changeset
|
2654 // android:configChanges="orientation|screenSize|screenLayout|keyboardHidden" |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
2655 override fun onCreate(savedInstanceState: Bundle?) { |
2473
aa420e366b2b
Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2656 super.onCreate(savedInstanceState) |
aa420e366b2b
Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2657 |
2480
878d36588aaa
Android: Enable app rotation and fix some issues with layout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2479
diff
changeset
|
2658 // Turn on rotation |
878d36588aaa
Android: Enable app rotation and fix some issues with layout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2479
diff
changeset
|
2659 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR) |
878d36588aaa
Android: Enable app rotation and fix some issues with layout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2479
diff
changeset
|
2660 |
2498
4ae2b3b77f25
Android: Get the notebook control functional. Disable recylcing of the views.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2497
diff
changeset
|
2661 // Get the Android app path |
4ae2b3b77f25
Android: Get the notebook control functional. Disable recylcing of the views.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2497
diff
changeset
|
2662 val m = packageManager |
4ae2b3b77f25
Android: Get the notebook control functional. Disable recylcing of the views.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2497
diff
changeset
|
2663 var s = packageName |
4ae2b3b77f25
Android: Get the notebook control functional. Disable recylcing of the views.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2497
diff
changeset
|
2664 val p = m.getPackageInfo(s!!, 0) |
4ae2b3b77f25
Android: Get the notebook control functional. Disable recylcing of the views.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2497
diff
changeset
|
2665 s = p.applicationInfo.dataDir |
2658
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2666 val c = cacheDir.path |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2667 |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2668 // Extract any non-resource assets to the cache directory |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2669 // So that our C code can access them as files, like on |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2670 // other Dynamic Windows platforms |
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2671 extractAssets() |
2474
a13e6db064f4
Android: Implement thread, semaphore, shared memory API functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2473
diff
changeset
|
2672 |
2665
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2673 // Setup our ViewPager2 as our activty window container |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2674 windowLayout = ViewPager2(this) |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2675 windowLayout!!.id = View.generateViewId() |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2676 windowLayout!!.adapter = DWTabViewPagerAdapter() |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2677 windowLayout!!.isUserInputEnabled = false |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2678 windowLayout!!.layoutParams = |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2679 ViewGroup.LayoutParams( |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2680 ViewGroup.LayoutParams.MATCH_PARENT, |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2681 ViewGroup.LayoutParams.MATCH_PARENT |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2682 ) |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2683 |
2756
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2684 colorSelection = getPlatformSelectionColor(this) |
4f09bf72b391
Android: Attempt to get the selection background color from the theme.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2755
diff
changeset
|
2685 |
2498
4ae2b3b77f25
Android: Get the notebook control functional. Disable recylcing of the views.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2497
diff
changeset
|
2686 // Initialize the Dynamic Windows code... |
4ae2b3b77f25
Android: Get the notebook control functional. Disable recylcing of the views.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2497
diff
changeset
|
2687 // This will start a new thread that calls the app's dwmain() |
2658
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
2688 dwindowsInit(s, c, this.getPackageName()) |
2496
3bf2f08fdc45
Android: Remove ugly workaround for initialization issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2495
diff
changeset
|
2689 } |
3bf2f08fdc45
Android: Remove ugly workaround for initialization issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2495
diff
changeset
|
2690 |
3bf2f08fdc45
Android: Remove ugly workaround for initialization issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2495
diff
changeset
|
2691 override fun onConfigurationChanged(newConfig: Configuration) { |
3bf2f08fdc45
Android: Remove ugly workaround for initialization issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2495
diff
changeset
|
2692 super.onConfigurationChanged(newConfig) |
3bf2f08fdc45
Android: Remove ugly workaround for initialization issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2495
diff
changeset
|
2693 |
2551
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
2694 val currentNightMode = newConfig.uiMode and Configuration.UI_MODE_NIGHT_MASK |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
2695 when (currentNightMode) { |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
2696 Configuration.UI_MODE_NIGHT_NO -> { darkMode = 0 } // Night mode is not active, we're using the light theme |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
2697 Configuration.UI_MODE_NIGHT_YES -> { darkMode = 1 } // Night mode is active, we're using dark theme |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
2698 } |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
2699 |
2499
ff3310fa6d72
Android: Implment DW_SIGNA_CONFIGURE on orientation change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2498
diff
changeset
|
2700 // Send a DW_SIGNAL_CONFIGURE on orientation change |
ff3310fa6d72
Android: Implment DW_SIGNA_CONFIGURE on orientation change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2498
diff
changeset
|
2701 if(windowLayout != null) { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
2702 val width: Int = windowLayout!!.width |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
2703 val height: Int = windowLayout!!.height |
2665
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2704 val adapter: DWTabViewPagerAdapter = windowLayout!!.adapter as DWTabViewPagerAdapter |
2685
17c34bdaec6c
Android: Put in some list bounds safety checks... them getting hit however...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2684
diff
changeset
|
2705 val index = windowLayout!!.currentItem |
17c34bdaec6c
Android: Put in some list bounds safety checks... them getting hit however...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2684
diff
changeset
|
2706 val count = adapter.viewList.count() |
17c34bdaec6c
Android: Put in some list bounds safety checks... them getting hit however...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2684
diff
changeset
|
2707 |
17c34bdaec6c
Android: Put in some list bounds safety checks... them getting hit however...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2684
diff
changeset
|
2708 if(count > 0 && index < count) { |
17c34bdaec6c
Android: Put in some list bounds safety checks... them getting hit however...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2684
diff
changeset
|
2709 val window = adapter.viewList[index] |
17c34bdaec6c
Android: Put in some list bounds safety checks... them getting hit however...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2684
diff
changeset
|
2710 |
17c34bdaec6c
Android: Put in some list bounds safety checks... them getting hit however...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2684
diff
changeset
|
2711 eventHandlerInt(window, DWEvent.CONFIGURE, width, height, 0, 0) |
17c34bdaec6c
Android: Put in some list bounds safety checks... them getting hit however...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2684
diff
changeset
|
2712 } |
2496
3bf2f08fdc45
Android: Remove ugly workaround for initialization issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2495
diff
changeset
|
2713 } |
2473
aa420e366b2b
Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2714 } |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
2715 |
2788
8a4f162810c2
Android: During dw_file_browse() request read/write access to external
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2785
diff
changeset
|
2716 override fun onCreateOptionsMenu(menu: Menu): Boolean { |
2666
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2717 if(windowLayout != null) { |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2718 val index = windowLayout!!.currentItem |
2685
17c34bdaec6c
Android: Put in some list bounds safety checks... them getting hit however...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2684
diff
changeset
|
2719 val count = windowMenuBars.count() |
17c34bdaec6c
Android: Put in some list bounds safety checks... them getting hit however...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2684
diff
changeset
|
2720 |
17c34bdaec6c
Android: Put in some list bounds safety checks... them getting hit however...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2684
diff
changeset
|
2721 if (count > 0 && index < count) { |
2666
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2722 var menuBar = windowMenuBars[index] |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2723 |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2724 if(menuBar == null) { |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2725 menuBar = DWMenu() |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2726 windowMenuBars[index] = menuBar |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2727 } |
2707
a3f6ca621453
Android: Implement dw_mle_set_visible(). Also fix various warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2706
diff
changeset
|
2728 menuBar.menu = menu |
2666
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2729 return super.onCreateOptionsMenu(menu) |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2730 } |
2543
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2731 } |
2666
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2732 return false |
2543
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2733 } |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2734 |
2788
8a4f162810c2
Android: During dw_file_browse() request read/write access to external
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2785
diff
changeset
|
2735 override fun onPrepareOptionsMenu(menu: Menu): Boolean { |
2666
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2736 if(windowLayout != null) { |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2737 val index = windowLayout!!.currentItem |
2685
17c34bdaec6c
Android: Put in some list bounds safety checks... them getting hit however...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2684
diff
changeset
|
2738 val count = windowMenuBars.count() |
17c34bdaec6c
Android: Put in some list bounds safety checks... them getting hit however...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2684
diff
changeset
|
2739 |
17c34bdaec6c
Android: Put in some list bounds safety checks... them getting hit however...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2684
diff
changeset
|
2740 if (count > 0 && index < count) { |
2666
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2741 var menuBar = windowMenuBars[index] |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2742 |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2743 if(menuBar != null) { |
2707
a3f6ca621453
Android: Implement dw_mle_set_visible(). Also fix various warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2706
diff
changeset
|
2744 menuBar.createMenu(menu, true) |
2666
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2745 } else { |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2746 menuBar = DWMenu() |
2707
a3f6ca621453
Android: Implement dw_mle_set_visible(). Also fix various warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2706
diff
changeset
|
2747 menuBar.createMenu(menu, true) |
2666
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2748 windowMenuBars[index] = menuBar |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2749 } |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2750 return super.onPrepareOptionsMenu(menu) |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2751 } |
2543
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2752 } |
2666
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2753 return false |
2543
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2754 } |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2755 |
2668
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
2756 override fun onBackPressed() { |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
2757 if(windowLayout != null) { |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
2758 val adapter: DWTabViewPagerAdapter = windowLayout!!.adapter as DWTabViewPagerAdapter |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
2759 val index = windowLayout!!.currentItem |
2685
17c34bdaec6c
Android: Put in some list bounds safety checks... them getting hit however...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2684
diff
changeset
|
2760 val count = windowStyles.count() |
2668
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
2761 |
2670
e3a95940c18f
Android: Implement DW_FCF_CLOSEBUTTON and DW_FCF_TITLEBAR flags.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2669
diff
changeset
|
2762 // If the current window has a close button... |
2685
17c34bdaec6c
Android: Put in some list bounds safety checks... them getting hit however...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2684
diff
changeset
|
2763 if (count > 1 && index > 0 && index < count && (windowStyles[index] and 1) == 1) { |
2670
e3a95940c18f
Android: Implement DW_FCF_CLOSEBUTTON and DW_FCF_TITLEBAR flags.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2669
diff
changeset
|
2764 // Send the DW_SIGNAL_DELETE to the event handler |
e3a95940c18f
Android: Implement DW_FCF_CLOSEBUTTON and DW_FCF_TITLEBAR flags.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2669
diff
changeset
|
2765 eventHandlerSimple(adapter.viewList[index], DWEvent.DELETE) |
2668
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
2766 } |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
2767 } |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
2768 } |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
2769 |
2552
303f544d14fa
Android: Refactor boxPack() to try to fix non-expandable items expanding.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2551
diff
changeset
|
2770 // These are the Android calls to actually create the UI... |
303f544d14fa
Android: Refactor boxPack() to try to fix non-expandable items expanding.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2551
diff
changeset
|
2771 // forwarded from the C Dynamic Windows API |
303f544d14fa
Android: Refactor boxPack() to try to fix non-expandable items expanding.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2551
diff
changeset
|
2772 |
2551
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
2773 fun darkModeDetected(): Int |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
2774 { |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
2775 return darkMode |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
2776 } |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
2777 |
2834
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2778 fun setContainerMode(mode: Int) |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2779 { |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2780 contMode = mode |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2781 } |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
2782 |
2694
cee79add3669
Andrdoid: Implement dw_browse() to load a URL in a new Activity.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2692
diff
changeset
|
2783 fun browseURL(url: String): Int { |
cee79add3669
Andrdoid: Implement dw_browse() to load a URL in a new Activity.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2692
diff
changeset
|
2784 var retval: Int = -1 // DW_ERROR_UNKNOWN |
cee79add3669
Andrdoid: Implement dw_browse() to load a URL in a new Activity.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2692
diff
changeset
|
2785 |
cee79add3669
Andrdoid: Implement dw_browse() to load a URL in a new Activity.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2692
diff
changeset
|
2786 waitOnUiThread { |
cee79add3669
Andrdoid: Implement dw_browse() to load a URL in a new Activity.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2692
diff
changeset
|
2787 val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse(url)) |
cee79add3669
Andrdoid: Implement dw_browse() to load a URL in a new Activity.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2692
diff
changeset
|
2788 try { |
cee79add3669
Andrdoid: Implement dw_browse() to load a URL in a new Activity.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2692
diff
changeset
|
2789 retval = 0 // DW_ERROR_NONE |
cee79add3669
Andrdoid: Implement dw_browse() to load a URL in a new Activity.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2692
diff
changeset
|
2790 startActivity(browserIntent) |
cee79add3669
Andrdoid: Implement dw_browse() to load a URL in a new Activity.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2692
diff
changeset
|
2791 } catch (e: ActivityNotFoundException) { |
cee79add3669
Andrdoid: Implement dw_browse() to load a URL in a new Activity.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2692
diff
changeset
|
2792 retval = -1 // DW_ERROR_UNKNOWN |
cee79add3669
Andrdoid: Implement dw_browse() to load a URL in a new Activity.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2692
diff
changeset
|
2793 } |
cee79add3669
Andrdoid: Implement dw_browse() to load a URL in a new Activity.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2692
diff
changeset
|
2794 } |
cee79add3669
Andrdoid: Implement dw_browse() to load a URL in a new Activity.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2692
diff
changeset
|
2795 return retval |
cee79add3669
Andrdoid: Implement dw_browse() to load a URL in a new Activity.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2692
diff
changeset
|
2796 } |
cee79add3669
Andrdoid: Implement dw_browse() to load a URL in a new Activity.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2692
diff
changeset
|
2797 |
2607
3b9bbd69bb9c
Android: Implement dw_menu_popup() ... still need to implement the context events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2596
diff
changeset
|
2798 fun menuPopup(menu: DWMenu, parent: View, x: Int, y: Int) |
3b9bbd69bb9c
Android: Implement dw_menu_popup() ... still need to implement the context events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2596
diff
changeset
|
2799 { |
2614
dbcd9416e9c9
Android: Popup menus on Andoird use an anchor View not the touch location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2613
diff
changeset
|
2800 var anchor: View? = parent |
dbcd9416e9c9
Android: Popup menus on Andoird use an anchor View not the touch location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2613
diff
changeset
|
2801 |
dbcd9416e9c9
Android: Popup menus on Andoird use an anchor View not the touch location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2613
diff
changeset
|
2802 // If lastClickView is valid, use that instead of parent |
dbcd9416e9c9
Android: Popup menus on Andoird use an anchor View not the touch location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2613
diff
changeset
|
2803 if(lastClickView != null) { |
dbcd9416e9c9
Android: Popup menus on Andoird use an anchor View not the touch location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2613
diff
changeset
|
2804 anchor = lastClickView |
dbcd9416e9c9
Android: Popup menus on Andoird use an anchor View not the touch location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2613
diff
changeset
|
2805 } |
dbcd9416e9c9
Android: Popup menus on Andoird use an anchor View not the touch location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2613
diff
changeset
|
2806 |
2607
3b9bbd69bb9c
Android: Implement dw_menu_popup() ... still need to implement the context events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2596
diff
changeset
|
2807 runOnUiThread { |
2614
dbcd9416e9c9
Android: Popup menus on Andoird use an anchor View not the touch location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2613
diff
changeset
|
2808 val popup = PopupMenu(this, anchor) |
2607
3b9bbd69bb9c
Android: Implement dw_menu_popup() ... still need to implement the context events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2596
diff
changeset
|
2809 |
2666
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2810 menu.createMenu(popup.menu, false) |
2607
3b9bbd69bb9c
Android: Implement dw_menu_popup() ... still need to implement the context events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2596
diff
changeset
|
2811 popup.show() |
3b9bbd69bb9c
Android: Implement dw_menu_popup() ... still need to implement the context events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2596
diff
changeset
|
2812 } |
3b9bbd69bb9c
Android: Implement dw_menu_popup() ... still need to implement the context events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2596
diff
changeset
|
2813 } |
3b9bbd69bb9c
Android: Implement dw_menu_popup() ... still need to implement the context events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2596
diff
changeset
|
2814 |
2543
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2815 fun menuBarNew(location: View): DWMenu? |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2816 { |
2666
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2817 var menuBar: DWMenu? = null |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2818 |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2819 if(windowLayout != null) { |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2820 waitOnUiThread { |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2821 val adapter: DWTabViewPagerAdapter = windowLayout!!.adapter as DWTabViewPagerAdapter |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2822 val index = adapter.viewList.indexOf(location) |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2823 |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2824 if (index != -1) { |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2825 menuBar = DWMenu() |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2826 windowMenuBars[index] = menuBar |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2827 } |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2828 } |
4f2d433747e2
Android: Rewrite the menubar code for multi-window support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2665
diff
changeset
|
2829 } |
2543
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2830 return menuBar |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2831 } |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2832 |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2833 fun menuNew(cid: Int): DWMenu |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2834 { |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2835 val menu = DWMenu() |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2836 menu.id = cid |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2837 return menu |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2838 } |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2839 |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2840 fun menuAppendItem(menu: DWMenu, title: String, cid: Int, flags: Int, end: Int, check: Int, submenu: DWMenu?): DWMenuItem |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2841 { |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2842 val menuitem = DWMenuItem() |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2843 menuitem.id = cid |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2844 menuitem.title = title |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2845 menuitem.check = check != 0 |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2846 if(submenu != null) { |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2847 menuitem.submenu = submenu |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2848 } |
2546
897d94c20365
Android: Implement disabled menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2545
diff
changeset
|
2849 if((flags and (1 shl 1)) != 0) { |
897d94c20365
Android: Implement disabled menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2545
diff
changeset
|
2850 menuitem.enabled = false |
897d94c20365
Android: Implement disabled menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2545
diff
changeset
|
2851 } |
2543
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2852 if((flags and (1 shl 2)) != 0) { |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2853 menuitem.checked = true |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2854 } |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2855 if(end == 0) { |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2856 menu.children.add(0, menuitem) |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2857 } else { |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2858 menu.children.add(menuitem) |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2859 } |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2860 return menuitem |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2861 } |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
2862 |
2545
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2863 fun menuDestroy(menu: DWMenu) |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2864 { |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2865 menu.children.clear() |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2866 runOnUiThread { |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2867 menu.menu!!.clear() |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2868 invalidateOptionsMenu() |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2869 } |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2870 } |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2871 |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2872 fun menuDeleteItem(menu: DWMenu, cid: Int) |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2873 { |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2874 for(menuitem in menu.children) { |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2875 if(menuitem.id == cid) { |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2876 menu.children.remove(menuitem) |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2877 runOnUiThread { |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2878 menu.menu!!.removeItem(menuitem.id) |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2879 invalidateOptionsMenu() |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2880 } |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2881 } |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2882 } |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2883 } |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2884 |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2885 fun menuSetState(menu: DWMenu, cid: Int, state: Int) |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2886 { |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2887 for(menuitem in menu.children) { |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2888 if(menuitem.id == cid) { |
2806
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
2889 var changed: Boolean = false |
2546
897d94c20365
Android: Implement disabled menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2545
diff
changeset
|
2890 // Handle DW_MIS_ENABLED/DISABLED |
897d94c20365
Android: Implement disabled menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2545
diff
changeset
|
2891 if((state and (1 or (1 shl 1))) != 0) { |
2556
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
2892 var enabled = false |
2546
897d94c20365
Android: Implement disabled menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2545
diff
changeset
|
2893 |
897d94c20365
Android: Implement disabled menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2545
diff
changeset
|
2894 // Handle DW_MIS_ENABLED |
897d94c20365
Android: Implement disabled menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2545
diff
changeset
|
2895 if ((state and 1) != 0) { |
897d94c20365
Android: Implement disabled menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2545
diff
changeset
|
2896 enabled = true |
897d94c20365
Android: Implement disabled menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2545
diff
changeset
|
2897 } |
897d94c20365
Android: Implement disabled menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2545
diff
changeset
|
2898 menuitem.enabled = enabled |
2806
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
2899 if (menuitem.menuitem != null && menuitem.menuitem!!.isEnabled != enabled) { |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
2900 menuitem.menuitem!!.isEnabled = enabled |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
2901 changed = true |
2546
897d94c20365
Android: Implement disabled menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2545
diff
changeset
|
2902 } |
897d94c20365
Android: Implement disabled menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2545
diff
changeset
|
2903 } |
897d94c20365
Android: Implement disabled menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2545
diff
changeset
|
2904 |
2545
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2905 // Handle DW_MIS_CHECKED/UNCHECKED |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2906 if((state and ((1 shl 2) or (1 shl 3))) != 0) { |
2556
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
2907 var checked = false |
2545
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2908 |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2909 // Handle DW_MIS_CHECKED |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2910 if ((state and (1 shl 2)) != 0) { |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2911 checked = true |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2912 } |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2913 menuitem.checked = checked |
2806
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
2914 if (menuitem.menuitem != null && menuitem.menuitem!!.isChecked != checked) { |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
2915 menuitem.menuitem!!.isChecked = checked |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
2916 changed = true |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
2917 } |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
2918 if(changed == true) { |
2642
3edc64443b71
Android: Fix a null pointer exception in the menu code running HandyFTP on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2637
diff
changeset
|
2919 runOnUiThread { |
3edc64443b71
Android: Fix a null pointer exception in the menu code running HandyFTP on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2637
diff
changeset
|
2920 invalidateOptionsMenu() |
3edc64443b71
Android: Fix a null pointer exception in the menu code running HandyFTP on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2637
diff
changeset
|
2921 } |
2545
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2922 } |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2923 } |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2924 } |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2925 } |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2926 } |
f803f3b164cf
Android: Implement dw_menu_item_set_state/check() dw_menu_item_delete() and dw_menu_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2544
diff
changeset
|
2927 |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
2928 fun windowNew(title: String, style: Int): LinearLayout? { |
2665
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2929 var window: LinearLayout? = null |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2930 |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2931 if(windowLayout != null) { |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
2932 waitOnUiThread { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
2933 val dataArrayMap = SimpleArrayMap<String, Long>() |
2665
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2934 val adapter: DWTabViewPagerAdapter = windowLayout!!.adapter as DWTabViewPagerAdapter |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2935 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
2936 setContentView(windowLayout) |
2665
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2937 |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2938 window = LinearLayout(this) |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2939 window!!.visibility = View.GONE |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2940 window!!.tag = dataArrayMap |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2941 window!!.layoutParams = |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2942 LinearLayout.LayoutParams( |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2943 LinearLayout.LayoutParams.MATCH_PARENT, |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2944 LinearLayout.LayoutParams.MATCH_PARENT |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2945 ) |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2946 |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2947 // Update our window list |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2948 adapter.viewList.add(window!!) |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2949 windowTitles.add(title) |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2950 windowMenuBars.add(null) |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2951 windowStyles.add(style) |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2952 windowDefault.add(null) |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2953 |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2954 // If this is our first/only window... |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2955 // We can set stuff immediately |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2956 if (adapter.viewList.count() == 1) { |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2957 this.title = title |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2958 windowLayout!!.setCurrentItem(0, false) |
2670
e3a95940c18f
Android: Implement DW_FCF_CLOSEBUTTON and DW_FCF_TITLEBAR flags.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2669
diff
changeset
|
2959 if((windowStyles[0] and 2) != 2) { |
e3a95940c18f
Android: Implement DW_FCF_CLOSEBUTTON and DW_FCF_TITLEBAR flags.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2669
diff
changeset
|
2960 supportActionBar?.hide() |
e3a95940c18f
Android: Implement DW_FCF_CLOSEBUTTON and DW_FCF_TITLEBAR flags.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2669
diff
changeset
|
2961 } |
2665
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2962 } |
2691
e13607b87517
Android: Call notifyDataSetChanged() on ViewPager2 adapters to fix some
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2690
diff
changeset
|
2963 adapter.notifyDataSetChanged() |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
2964 } |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
2965 } |
2665
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2966 return window |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
2967 } |
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
2968 |
2582
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
2969 fun windowSetFocus(window: View) |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
2970 { |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
2971 waitOnUiThread { |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
2972 window.requestFocus() |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
2973 } |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
2974 } |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
2975 |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
2976 fun windowDefault(window: View, default: View) |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
2977 { |
2665
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2978 if(windowLayout != null) { |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2979 val adapter: DWTabViewPagerAdapter = windowLayout!!.adapter as DWTabViewPagerAdapter |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2980 val index = adapter.viewList.indexOf(window) |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2981 |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2982 if (index != -1) { |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2983 windowDefault[index] = default |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2984 } |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2985 } |
2582
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
2986 } |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
2987 |
2790
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
2988 fun windowSetStyle(window: Any, style: Int, mask: Int) |
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
2989 { |
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
2990 // TODO: Need to handle menu items and others |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
2991 waitOnUiThread { |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
2992 if (window is TextView && window !is EditText) { |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
2993 val ourmask = (Gravity.HORIZONTAL_GRAVITY_MASK or Gravity.VERTICAL_GRAVITY_MASK) and mask |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
2994 |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
2995 if (ourmask != 0) { |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
2996 // Gravity with the masked parts zeroed out |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
2997 val newgravity = style and ourmask |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
2998 |
2665
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
2999 window.gravity = newgravity |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3000 } |
2803
708bcef0ce6b
Android: Add support for DW_BS_NOBORDER on bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2799
diff
changeset
|
3001 } else if(window is ImageButton) { |
708bcef0ce6b
Android: Add support for DW_BS_NOBORDER on bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2799
diff
changeset
|
3002 // DW_BS_NOBORDER = 1 |
708bcef0ce6b
Android: Add support for DW_BS_NOBORDER on bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2799
diff
changeset
|
3003 if((mask and 1) == 1) { |
708bcef0ce6b
Android: Add support for DW_BS_NOBORDER on bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2799
diff
changeset
|
3004 val button = window as ImageButton |
708bcef0ce6b
Android: Add support for DW_BS_NOBORDER on bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2799
diff
changeset
|
3005 if((style and 1) == 1) { |
708bcef0ce6b
Android: Add support for DW_BS_NOBORDER on bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2799
diff
changeset
|
3006 button.background = null |
708bcef0ce6b
Android: Add support for DW_BS_NOBORDER on bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2799
diff
changeset
|
3007 } // TODO: Handle turning border back on if possible |
708bcef0ce6b
Android: Add support for DW_BS_NOBORDER on bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2799
diff
changeset
|
3008 } |
2806
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3009 } else if(window is DWMenuItem) { |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3010 var menuitem = window as DWMenuItem |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3011 var changed: Boolean = false |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3012 |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3013 // Handle DW_MIS_ENABLED/DISABLED |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3014 if((mask and (1 or (1 shl 1))) != 0) { |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3015 var enabled = false |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3016 |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3017 // Handle DW_MIS_ENABLED = 1 or DW_MIS_DISABLED = 0 |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3018 if (((mask and 1) != 0 && (style and 1) != 0) || |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3019 ((mask and (1 shl 1) != 0 && (style and (1 shl 1) == 0)))) { |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3020 enabled = true |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3021 } |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3022 menuitem.enabled = enabled |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3023 if(menuitem.menuitem != null && menuitem.menuitem!!.isEnabled != enabled) { |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3024 menuitem.menuitem!!.isEnabled = enabled |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3025 changed = true |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3026 } |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3027 } |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3028 |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3029 // Handle DW_MIS_CHECKED/UNCHECKED |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3030 if((mask and ((1 shl 2) or (1 shl 3))) != 0) { |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3031 var checked = false |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3032 |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3033 // Handle DW_MIS_CHECKED = 1 or DW_MIS_UNCHECKED = 0 |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3034 if (((mask and (1 shl 2)) != 0 && (style and (1 shl 2)) != 0) || |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3035 ((mask and (1 shl 3) != 0 && (style and (1 shl 3) == 0)))) { |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3036 checked = true |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3037 } |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3038 menuitem.checked = checked |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3039 if (menuitem.menuitem != null && menuitem.menuitem!!.isChecked != checked) { |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3040 menuitem.menuitem!!.isChecked = checked |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3041 changed = true |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3042 } |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3043 } |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3044 if(changed == true) { |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3045 runOnUiThread { |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3046 invalidateOptionsMenu() |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3047 } |
d7b6e19e44d2
Android: Add support for menu item handles in dw_window_set_style().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2805
diff
changeset
|
3048 } |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3049 } |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3050 } |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3051 } |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3052 |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3053 fun windowFromId(window: View, cid: Int): View { |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
3054 return window.findViewById(cid) |
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
3055 } |
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
3056 |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3057 fun windowSetData(window: View, name: String, data: Long) { |
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3058 if (window.tag != null) { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3059 val dataArrayMap: SimpleArrayMap<String, Long> = window.tag as SimpleArrayMap<String, Long> |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
3060 |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3061 if (data != 0L) { |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
3062 dataArrayMap.put(name, data) |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3063 } else { |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
3064 dataArrayMap.remove(name) |
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
3065 } |
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
3066 } |
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
3067 } |
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
3068 |
2686
95f61d3f3d0d
Android: Initial attempt at implmenting dw_window_get_preferred_size().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2685
diff
changeset
|
3069 fun windowGetPreferredSize(window: View): Long |
95f61d3f3d0d
Android: Initial attempt at implmenting dw_window_get_preferred_size().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2685
diff
changeset
|
3070 { |
95f61d3f3d0d
Android: Initial attempt at implmenting dw_window_get_preferred_size().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2685
diff
changeset
|
3071 var retval: Long = 0 |
95f61d3f3d0d
Android: Initial attempt at implmenting dw_window_get_preferred_size().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2685
diff
changeset
|
3072 |
95f61d3f3d0d
Android: Initial attempt at implmenting dw_window_get_preferred_size().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2685
diff
changeset
|
3073 waitOnUiThread { |
95f61d3f3d0d
Android: Initial attempt at implmenting dw_window_get_preferred_size().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2685
diff
changeset
|
3074 window.measure(0, 0) |
95f61d3f3d0d
Android: Initial attempt at implmenting dw_window_get_preferred_size().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2685
diff
changeset
|
3075 val width = window.measuredWidth |
95f61d3f3d0d
Android: Initial attempt at implmenting dw_window_get_preferred_size().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2685
diff
changeset
|
3076 val height = window.measuredHeight |
95f61d3f3d0d
Android: Initial attempt at implmenting dw_window_get_preferred_size().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2685
diff
changeset
|
3077 retval = width.toLong() or (height.toLong() shl 32) |
95f61d3f3d0d
Android: Initial attempt at implmenting dw_window_get_preferred_size().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2685
diff
changeset
|
3078 if(window is SeekBar) { |
95f61d3f3d0d
Android: Initial attempt at implmenting dw_window_get_preferred_size().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2685
diff
changeset
|
3079 val slider = window as SeekBar |
95f61d3f3d0d
Android: Initial attempt at implmenting dw_window_get_preferred_size().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2685
diff
changeset
|
3080 |
95f61d3f3d0d
Android: Initial attempt at implmenting dw_window_get_preferred_size().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2685
diff
changeset
|
3081 // If the widget is rotated, swap width and height |
2687
42ff9d95e87b
Android: Fix the logic error, had height and width reversed in bitfields.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2686
diff
changeset
|
3082 if(slider.rotation == 270F || slider.rotation == 90F) { |
2686
95f61d3f3d0d
Android: Initial attempt at implmenting dw_window_get_preferred_size().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2685
diff
changeset
|
3083 retval = height.toLong() or (width.toLong() shl 32) |
95f61d3f3d0d
Android: Initial attempt at implmenting dw_window_get_preferred_size().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2685
diff
changeset
|
3084 } |
95f61d3f3d0d
Android: Initial attempt at implmenting dw_window_get_preferred_size().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2685
diff
changeset
|
3085 } |
95f61d3f3d0d
Android: Initial attempt at implmenting dw_window_get_preferred_size().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2685
diff
changeset
|
3086 } |
95f61d3f3d0d
Android: Initial attempt at implmenting dw_window_get_preferred_size().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2685
diff
changeset
|
3087 return retval |
95f61d3f3d0d
Android: Initial attempt at implmenting dw_window_get_preferred_size().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2685
diff
changeset
|
3088 } |
95f61d3f3d0d
Android: Initial attempt at implmenting dw_window_get_preferred_size().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2685
diff
changeset
|
3089 |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3090 fun windowGetData(window: View, name: String): Long { |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
3091 var retval = 0L |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
3092 |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3093 if (window.tag != null) { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3094 val dataArrayMap: SimpleArrayMap<String, Long> = window.tag as SimpleArrayMap<String, Long> |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
3095 |
2557
756331246f94
Android: Implement Java exception handling, make sure all return values from JNI are sane.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2556
diff
changeset
|
3096 if(dataArrayMap.containsKey(name)) { |
756331246f94
Android: Implement Java exception handling, make sure all return values from JNI are sane.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2556
diff
changeset
|
3097 retval = dataArrayMap.get(name)!! |
756331246f94
Android: Implement Java exception handling, make sure all return values from JNI are sane.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2556
diff
changeset
|
3098 } |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
3099 } |
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
3100 return retval |
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
3101 } |
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
3102 |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3103 fun windowSetEnabled(window: View, state: Boolean) { |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3104 waitOnUiThread { |
2808
965c3c6ed1ed
Android: Gray out disabled bitmap buttons...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2806
diff
changeset
|
3105 window.isEnabled = state |
965c3c6ed1ed
Android: Gray out disabled bitmap buttons...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2806
diff
changeset
|
3106 if(window is ImageButton) { |
965c3c6ed1ed
Android: Gray out disabled bitmap buttons...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2806
diff
changeset
|
3107 val ib = window as ImageButton |
965c3c6ed1ed
Android: Gray out disabled bitmap buttons...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2806
diff
changeset
|
3108 |
965c3c6ed1ed
Android: Gray out disabled bitmap buttons...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2806
diff
changeset
|
3109 if(ib.drawable != null) { |
965c3c6ed1ed
Android: Gray out disabled bitmap buttons...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2806
diff
changeset
|
3110 if(state) { |
2809
f81e92947f4a
Android: Change syntax of previous commit to avoid deprecations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2808
diff
changeset
|
3111 ib.drawable.colorFilter = null |
2808
965c3c6ed1ed
Android: Gray out disabled bitmap buttons...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2806
diff
changeset
|
3112 } else { |
2809
f81e92947f4a
Android: Change syntax of previous commit to avoid deprecations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2808
diff
changeset
|
3113 ib.drawable.colorFilter = PorterDuffColorFilter(Color.LTGRAY, PorterDuff.Mode.SRC_IN) |
2808
965c3c6ed1ed
Android: Gray out disabled bitmap buttons...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2806
diff
changeset
|
3114 } |
965c3c6ed1ed
Android: Gray out disabled bitmap buttons...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2806
diff
changeset
|
3115 if(ib.background != null) { |
965c3c6ed1ed
Android: Gray out disabled bitmap buttons...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2806
diff
changeset
|
3116 if(state) { |
2809
f81e92947f4a
Android: Change syntax of previous commit to avoid deprecations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2808
diff
changeset
|
3117 ib.background.colorFilter = null |
2808
965c3c6ed1ed
Android: Gray out disabled bitmap buttons...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2806
diff
changeset
|
3118 } else { |
2809
f81e92947f4a
Android: Change syntax of previous commit to avoid deprecations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2808
diff
changeset
|
3119 ib.background.colorFilter = PorterDuffColorFilter(Color.LTGRAY, PorterDuff.Mode.SRC_IN) |
2808
965c3c6ed1ed
Android: Gray out disabled bitmap buttons...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2806
diff
changeset
|
3120 } |
965c3c6ed1ed
Android: Gray out disabled bitmap buttons...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2806
diff
changeset
|
3121 } |
965c3c6ed1ed
Android: Gray out disabled bitmap buttons...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2806
diff
changeset
|
3122 } |
965c3c6ed1ed
Android: Gray out disabled bitmap buttons...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2806
diff
changeset
|
3123 } |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3124 } |
2475
16d195d46f2a
Android: Implement dw_window_new(), dw_box_new() and dw_box_pack().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2474
diff
changeset
|
3125 } |
2473
aa420e366b2b
Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3126 |
2547
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3127 fun typefaceFromFontName(fontname: String?): Typeface? |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3128 { |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3129 if(fontname != null) { |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3130 val bold: Boolean = fontname.contains(" Bold") |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3131 val italic: Boolean = fontname.contains(" Italic") |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3132 val font = fontname.substringAfter('.') |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3133 var fontFamily = font |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
3134 val typeface: Typeface? |
2547
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3135 |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3136 if (bold) { |
2547
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3137 fontFamily = font.substringBefore(" Bold") |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3138 } else if (italic) { |
2547
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3139 fontFamily = font.substringBefore(" Italic") |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3140 } |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3141 |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3142 var style: Int = Typeface.NORMAL |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3143 if (bold && italic) { |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3144 style = Typeface.BOLD_ITALIC |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3145 } else if (bold) { |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3146 style = Typeface.BOLD |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3147 } else if (italic) { |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3148 style = Typeface.ITALIC |
2547
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3149 } |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3150 typeface = Typeface.create(fontFamily, style) |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3151 |
2547
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3152 return typeface |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3153 } |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3154 return Typeface.DEFAULT |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3155 } |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3156 |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3157 fun windowSetFont(window: View, fontname: String?) { |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
3158 val typeface: Typeface? = typefaceFromFontName(fontname) |
2547
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3159 var size: Float? = null |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3160 |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3161 if(fontname != null) { |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3162 size = fontname.substringBefore('.').toFloatOrNull() |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3163 } |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3164 |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3165 if(typeface != null) { |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3166 waitOnUiThread { |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3167 if (window is TextView) { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3168 val textview: TextView = window |
2547
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3169 textview.typeface = typeface |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3170 if(size != null) { |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3171 textview.textSize = size |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3172 } |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3173 } else if (window is Button) { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3174 val button: Button = window |
2547
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3175 button.typeface = typeface |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3176 if(size != null) { |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3177 button.textSize = size |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3178 } |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3179 } else if(window is DWRender) { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3180 val render: DWRender = window |
2547
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3181 render.typeface = typeface |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3182 if(size != null) { |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3183 render.fontsize = size |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3184 } |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3185 } |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3186 } |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3187 } |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3188 } |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3189 |
2582
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3190 fun windowGetFont(window: View): String? |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3191 { |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3192 var fontname: String? = null |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3193 |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3194 waitOnUiThread { |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3195 var typeface: Typeface? = null |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3196 var fontsize: Float? = null |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3197 |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3198 if(window is DWRender) { |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3199 typeface = window.typeface |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3200 fontsize = window.fontsize |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3201 } else if(window is TextView) { |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3202 typeface = window.typeface |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3203 fontsize = window.textSize |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3204 } else if(window is Button) { |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3205 typeface = window.typeface |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3206 fontsize = window.textSize |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3207 } |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3208 |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3209 if(typeface != null && fontsize != null) { |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3210 val isize = fontsize.toInt() |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3211 val name = typeface.toString() |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3212 |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3213 fontname = "$isize.$name" |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3214 } |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3215 } |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3216 return null |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3217 } |
01fca1937806
Android: Implement dw_window_set_focus(), dw_window_default() and dw_window_get_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2581
diff
changeset
|
3218 |
2551
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3219 fun windowSetColor(window: View, fore: Int, falpha: Int, fred: Int, fgreen: Int, fblue: Int, |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3220 back: Int, balpha: Int, bred: Int, bgreen: Int, bblue: Int) { |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3221 var colorfore: Int = Color.rgb(fred, fgreen, fblue) |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3222 var colorback: Int = Color.rgb(bred, bgreen, bblue) |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3223 |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3224 // DW_CLR_DEFAULT on background sets it transparent... |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3225 // so the background drawable shows through |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3226 if(back == 16) { |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3227 colorback = Color.TRANSPARENT |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3228 } |
2547
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3229 |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3230 waitOnUiThread { |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3231 if (window is TextView) { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3232 val textview: TextView = window |
2551
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3233 |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3234 // Handle DW_CLR_DEFAULT |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3235 if(fore == 16) { |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3236 val value = TypedValue() |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3237 this.theme.resolveAttribute(R.attr.editTextColor, value, true) |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3238 colorfore = value.data |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3239 } |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3240 textview.setTextColor(colorfore) |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3241 textview.setBackgroundColor(colorback) |
2547
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3242 } else if (window is Button) { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3243 val button: Button = window |
2551
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3244 |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3245 // Handle DW_CLR_DEFAULT |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3246 if(fore == 16) { |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3247 val value = TypedValue() |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3248 this.theme.resolveAttribute(R.attr.colorButtonNormal, value, true) |
2551
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3249 colorfore = value.data |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3250 } |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3251 button.setTextColor(colorfore) |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3252 button.setBackgroundColor(colorback) |
2547
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3253 } else if(window is LinearLayout) { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3254 val box: LinearLayout = window |
2551
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3255 |
127779860ac1
Android: Implement DW_CLR_DEFAULT and some basic dark mode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2550
diff
changeset
|
3256 box.setBackgroundColor(colorback) |
2677
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3257 } else if(window is DWListBox) { |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3258 val listbox = window as DWListBox |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3259 |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3260 // Handle DW_CLR_DEFAULT |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3261 if(fore == 16) { |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3262 val value = TypedValue() |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3263 this.theme.resolveAttribute(R.attr.editTextColor, value, true) |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3264 colorfore = value.data |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3265 } |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3266 |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3267 listbox.colorFore = colorfore |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3268 listbox.colorBack = colorback |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3269 |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3270 listbox.setBackgroundColor(colorback) |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3271 } else if(window is ListView) { |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3272 val cont = window as ListView |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3273 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3274 |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3275 // Handle DW_CLR_DEFAULT |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3276 if(fore == 16) { |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3277 val value = TypedValue() |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3278 this.theme.resolveAttribute(R.attr.editTextColor, value, true) |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3279 colorfore = value.data |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3280 } |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3281 |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3282 adapter.foreColor = colorfore |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3283 adapter.backColor = colorback |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3284 |
c90b2d7057c8
Android: Implement dw_window_set_color() on Containers and Listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2676
diff
changeset
|
3285 cont.setBackgroundColor(colorback) |
2547
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3286 } |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3287 } |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3288 } |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
3289 |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3290 fun windowSetText(window: View, text: String) { |
2665
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3291 if(windowLayout != null) { |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3292 waitOnUiThread { |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3293 if (window is TextView) { |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3294 val textview: TextView = window |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3295 textview.text = text |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3296 } else if (window is Button) { |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3297 val button: Button = window |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3298 button.text = text |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3299 } else if (window is LinearLayout) { |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3300 val adapter: DWTabViewPagerAdapter = windowLayout!!.adapter as DWTabViewPagerAdapter |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3301 val index = adapter.viewList.indexOf(window) |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3302 |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3303 if(index != -1) { |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3304 windowTitles[index] = text |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3305 if(index == windowLayout!!.currentItem) { |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3306 this.title = text |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3307 } |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3308 } |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3309 } |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3310 } |
2489
6c01b0132813
Android: Implement window and clipboard text setter and getters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2488
diff
changeset
|
3311 } |
6c01b0132813
Android: Implement window and clipboard text setter and getters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2488
diff
changeset
|
3312 } |
6c01b0132813
Android: Implement window and clipboard text setter and getters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2488
diff
changeset
|
3313 |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3314 fun windowGetText(window: View): String? { |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3315 var text: String? = null |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3316 |
2665
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3317 if(windowLayout != null) { |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3318 waitOnUiThread { |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3319 if (window is TextView) { |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3320 val textview: TextView = window |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3321 text = textview.text.toString() |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3322 } else if (window is Button) { |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3323 val button: Button = window |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3324 text = button.text.toString() |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3325 } else if (window is LinearLayout) { |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3326 val adapter: DWTabViewPagerAdapter = windowLayout!!.adapter as DWTabViewPagerAdapter |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3327 val index = adapter.viewList.indexOf(window) |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3328 |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3329 if(index != -1) { |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3330 text = windowTitles[index] |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3331 } |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3332 } |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3333 } |
2489
6c01b0132813
Android: Implement window and clipboard text setter and getters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2488
diff
changeset
|
3334 } |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3335 return text |
2489
6c01b0132813
Android: Implement window and clipboard text setter and getters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2488
diff
changeset
|
3336 } |
6c01b0132813
Android: Implement window and clipboard text setter and getters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2488
diff
changeset
|
3337 |
2667
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3338 private fun windowSwitchWindow(index: Int) |
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3339 { |
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3340 val adapter: DWTabViewPagerAdapter = windowLayout!!.adapter as DWTabViewPagerAdapter |
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3341 |
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3342 if (index != -1) { |
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3343 val window = adapter.viewList[index] as View |
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3344 |
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3345 // Only allow a window to become active if it is shown |
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3346 if(window.visibility == View.VISIBLE) { |
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3347 // Update the action bar title |
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3348 this.title = windowTitles[index] |
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3349 // Switch the visible view in the pager |
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3350 if(adapter.recyclerView != null) { |
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3351 adapter.recyclerView!!.scrollToPosition(index) |
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3352 } |
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3353 // This is how I prefered to do it, but it doesn't work... |
2669
2ad924c6493d
Android: Still need to call setCurrentItem() on ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2668
diff
changeset
|
3354 // So using RecyclerView.scrollToPosition() also |
2ad924c6493d
Android: Still need to call setCurrentItem() on ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2668
diff
changeset
|
3355 windowLayout!!.setCurrentItem(index, true) |
2667
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3356 |
2670
e3a95940c18f
Android: Implement DW_FCF_CLOSEBUTTON and DW_FCF_TITLEBAR flags.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2669
diff
changeset
|
3357 // Hide or show the actionbar based on the titlebar flag |
e3a95940c18f
Android: Implement DW_FCF_CLOSEBUTTON and DW_FCF_TITLEBAR flags.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2669
diff
changeset
|
3358 if((windowStyles[index] and 2) == 2) { |
e3a95940c18f
Android: Implement DW_FCF_CLOSEBUTTON and DW_FCF_TITLEBAR flags.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2669
diff
changeset
|
3359 supportActionBar?.show() |
e3a95940c18f
Android: Implement DW_FCF_CLOSEBUTTON and DW_FCF_TITLEBAR flags.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2669
diff
changeset
|
3360 } else { |
e3a95940c18f
Android: Implement DW_FCF_CLOSEBUTTON and DW_FCF_TITLEBAR flags.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2669
diff
changeset
|
3361 supportActionBar?.hide() |
e3a95940c18f
Android: Implement DW_FCF_CLOSEBUTTON and DW_FCF_TITLEBAR flags.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2669
diff
changeset
|
3362 } |
2667
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3363 // If the new view has a default item, focus it |
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3364 if(windowDefault[index] != null) { |
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3365 windowDefault[index]?.requestFocus() |
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3366 } |
2668
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3367 // Add or remove a back button depending on the visible window |
2670
e3a95940c18f
Android: Implement DW_FCF_CLOSEBUTTON and DW_FCF_TITLEBAR flags.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2669
diff
changeset
|
3368 if(index > 0 && (windowStyles[index] and 1) == 1) { |
2668
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3369 this.actionBar?.setDisplayHomeAsUpEnabled(true) |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3370 } else { |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3371 this.actionBar?.setDisplayHomeAsUpEnabled(false) |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3372 } |
2667
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3373 // Invalidate the menu, so it gets updated for the new window |
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3374 invalidateOptionsMenu() |
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3375 } |
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3376 } |
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3377 } |
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3378 |
2503
1c2a79313b04
Android: Implment dw_window_hide/show(). Set the initial visibility to GONE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2502
diff
changeset
|
3379 fun windowHideShow(window: View, state: Int) |
1c2a79313b04
Android: Implment dw_window_hide/show(). Set the initial visibility to GONE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2502
diff
changeset
|
3380 { |
2665
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3381 if(windowLayout != null) { |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3382 waitOnUiThread { |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3383 val adapter: DWTabViewPagerAdapter = windowLayout!!.adapter as DWTabViewPagerAdapter |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3384 val index = adapter.viewList.indexOf(window) |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3385 |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3386 if(state == 0) { |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3387 window.visibility = View.GONE |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3388 } else { |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3389 window.visibility = View.VISIBLE |
aca4b56f50dd
Android: Attempt at multi-window support using ViewPager2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2659
diff
changeset
|
3390 } |
2691
e13607b87517
Android: Call notifyDataSetChanged() on ViewPager2 adapters to fix some
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2690
diff
changeset
|
3391 adapter.notifyDataSetChanged() |
2667
2ae70678c845
Android: Use a RecyclerView method to change the ViewPager2 page since the ViewPager2
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2666
diff
changeset
|
3392 windowSwitchWindow(index) |
2503
1c2a79313b04
Android: Implment dw_window_hide/show(). Set the initial visibility to GONE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2502
diff
changeset
|
3393 } |
1c2a79313b04
Android: Implment dw_window_hide/show(). Set the initial visibility to GONE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2502
diff
changeset
|
3394 } |
1c2a79313b04
Android: Implment dw_window_hide/show(). Set the initial visibility to GONE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2502
diff
changeset
|
3395 } |
1c2a79313b04
Android: Implment dw_window_hide/show(). Set the initial visibility to GONE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2502
diff
changeset
|
3396 |
2796
0c534743b7a9
Android: Allow passing a menu window handle to dw_window_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2795
diff
changeset
|
3397 fun windowDestroy(window: Any): Int { |
2668
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3398 var retval: Int = 1 // DW_ERROR_GENERAL |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3399 |
2796
0c534743b7a9
Android: Allow passing a menu window handle to dw_window_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2795
diff
changeset
|
3400 if(window is DWMenu) { |
0c534743b7a9
Android: Allow passing a menu window handle to dw_window_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2795
diff
changeset
|
3401 menuDestroy(window as DWMenu) |
0c534743b7a9
Android: Allow passing a menu window handle to dw_window_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2795
diff
changeset
|
3402 retval = 0 // DW_ERROR_NONE |
0c534743b7a9
Android: Allow passing a menu window handle to dw_window_destroy().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2795
diff
changeset
|
3403 } else if(windowLayout != null && window is View) { |
2668
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3404 waitOnUiThread { |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3405 val adapter: DWTabViewPagerAdapter = windowLayout!!.adapter as DWTabViewPagerAdapter |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3406 val index = adapter.viewList.indexOf(window) |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3407 |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3408 // We need to have at least 1 window... |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3409 // so only destroy secondary windows |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3410 if(index > 0) { |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3411 val newindex = index - 1 |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3412 val newwindow = adapter.viewList[newindex] |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3413 |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3414 // Make sure the previous window is visible... |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3415 // not sure if we should search the list for a visible |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3416 // window or force it visible. Forcing visible for now. |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3417 if(newwindow.visibility != View.VISIBLE) { |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3418 newwindow.visibility = View.VISIBLE |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3419 } |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3420 // Switch to the previous window |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3421 windowSwitchWindow(newindex) |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3422 |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3423 // Update our window list |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3424 adapter.viewList.removeAt(index) |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3425 windowTitles.removeAt(index) |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3426 windowMenuBars.removeAt(index) |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3427 windowStyles.removeAt(index) |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3428 windowDefault.removeAt(index) |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3429 |
2691
e13607b87517
Android: Call notifyDataSetChanged() on ViewPager2 adapters to fix some
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2690
diff
changeset
|
3430 adapter.notifyDataSetChanged() |
e13607b87517
Android: Call notifyDataSetChanged() on ViewPager2 adapters to fix some
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2690
diff
changeset
|
3431 |
2668
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3432 retval = 0 // DW_ERROR_NONE |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3433 } else { |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3434 // If we are removing an individual widget, |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3435 // find the parent layout and remove it. |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3436 if(window.parent is ViewGroup) { |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3437 val group = window.parent as ViewGroup |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3438 |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3439 group.removeView(window) |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3440 retval = 0 // DW_ERROR_NONE |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3441 } |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3442 } |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3443 } |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3444 } |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3445 return retval |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3446 } |
917f2d1f9cae
Android: Implement dw_window_destroy() and try to add a back button to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2667
diff
changeset
|
3447 |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3448 fun clipboardGetText(): String { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3449 val cm: ClipboardManager = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3450 val clipdata = cm.primaryClip |
2489
6c01b0132813
Android: Implement window and clipboard text setter and getters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2488
diff
changeset
|
3451 |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3452 if (clipdata != null && clipdata.itemCount > 0) { |
2489
6c01b0132813
Android: Implement window and clipboard text setter and getters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2488
diff
changeset
|
3453 return clipdata.getItemAt(0).coerceToText(this).toString() |
6c01b0132813
Android: Implement window and clipboard text setter and getters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2488
diff
changeset
|
3454 } |
6c01b0132813
Android: Implement window and clipboard text setter and getters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2488
diff
changeset
|
3455 return "" |
6c01b0132813
Android: Implement window and clipboard text setter and getters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2488
diff
changeset
|
3456 } |
6c01b0132813
Android: Implement window and clipboard text setter and getters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2488
diff
changeset
|
3457 |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3458 fun clipboardSetText(text: String) { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3459 val cm: ClipboardManager = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3460 val clipdata = ClipData.newPlainText("text", text) |
2489
6c01b0132813
Android: Implement window and clipboard text setter and getters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2488
diff
changeset
|
3461 |
6c01b0132813
Android: Implement window and clipboard text setter and getters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2488
diff
changeset
|
3462 cm.setPrimaryClip(clipdata) |
6c01b0132813
Android: Implement window and clipboard text setter and getters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2488
diff
changeset
|
3463 } |
6c01b0132813
Android: Implement window and clipboard text setter and getters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2488
diff
changeset
|
3464 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3465 fun boxNew(type: Int, pad: Int): LinearLayout? { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3466 var box: LinearLayout? = null |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3467 waitOnUiThread { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3468 box = LinearLayout(this) |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3469 val dataArrayMap = SimpleArrayMap<String, Long>() |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
3470 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3471 box!!.tag = dataArrayMap |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3472 box!!.layoutParams = |
2495
5664c91d03fb
Android: Attempts to sort out the various issues... still not working but...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2494
diff
changeset
|
3473 LinearLayout.LayoutParams( |
5664c91d03fb
Android: Attempts to sort out the various issues... still not working but...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2494
diff
changeset
|
3474 LinearLayout.LayoutParams.WRAP_CONTENT, |
5664c91d03fb
Android: Attempts to sort out the various issues... still not working but...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2494
diff
changeset
|
3475 LinearLayout.LayoutParams.WRAP_CONTENT |
5664c91d03fb
Android: Attempts to sort out the various issues... still not working but...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2494
diff
changeset
|
3476 ) |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3477 if (type > 0) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3478 box!!.orientation = LinearLayout.VERTICAL |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3479 } else { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3480 box!!.orientation = LinearLayout.HORIZONTAL |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3481 } |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3482 box!!.setPadding(pad, pad, pad, pad) |
2475
16d195d46f2a
Android: Implement dw_window_new(), dw_box_new() and dw_box_pack().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2474
diff
changeset
|
3483 } |
16d195d46f2a
Android: Implement dw_window_new(), dw_box_new() and dw_box_pack().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2474
diff
changeset
|
3484 return box |
16d195d46f2a
Android: Implement dw_window_new(), dw_box_new() and dw_box_pack().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2474
diff
changeset
|
3485 } |
16d195d46f2a
Android: Implement dw_window_new(), dw_box_new() and dw_box_pack().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2474
diff
changeset
|
3486 |
2689
7127de139acf
Android: Implement groupbox using RadioGroup... still missing the title and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2688
diff
changeset
|
3487 fun groupBoxNew(type: Int, pad: Int, title: String?): LinearLayout? { |
7127de139acf
Android: Implement groupbox using RadioGroup... still missing the title and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2688
diff
changeset
|
3488 var box: LinearLayout? = null |
7127de139acf
Android: Implement groupbox using RadioGroup... still missing the title and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2688
diff
changeset
|
3489 waitOnUiThread { |
7127de139acf
Android: Implement groupbox using RadioGroup... still missing the title and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2688
diff
changeset
|
3490 box = RadioGroup(this) |
7127de139acf
Android: Implement groupbox using RadioGroup... still missing the title and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2688
diff
changeset
|
3491 val dataArrayMap = SimpleArrayMap<String, Long>() |
7127de139acf
Android: Implement groupbox using RadioGroup... still missing the title and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2688
diff
changeset
|
3492 |
7127de139acf
Android: Implement groupbox using RadioGroup... still missing the title and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2688
diff
changeset
|
3493 box!!.tag = dataArrayMap |
7127de139acf
Android: Implement groupbox using RadioGroup... still missing the title and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2688
diff
changeset
|
3494 box!!.layoutParams = |
7127de139acf
Android: Implement groupbox using RadioGroup... still missing the title and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2688
diff
changeset
|
3495 LinearLayout.LayoutParams( |
7127de139acf
Android: Implement groupbox using RadioGroup... still missing the title and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2688
diff
changeset
|
3496 LinearLayout.LayoutParams.WRAP_CONTENT, |
7127de139acf
Android: Implement groupbox using RadioGroup... still missing the title and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2688
diff
changeset
|
3497 LinearLayout.LayoutParams.WRAP_CONTENT |
7127de139acf
Android: Implement groupbox using RadioGroup... still missing the title and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2688
diff
changeset
|
3498 ) |
7127de139acf
Android: Implement groupbox using RadioGroup... still missing the title and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2688
diff
changeset
|
3499 if (type > 0) { |
7127de139acf
Android: Implement groupbox using RadioGroup... still missing the title and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2688
diff
changeset
|
3500 box!!.orientation = LinearLayout.VERTICAL |
7127de139acf
Android: Implement groupbox using RadioGroup... still missing the title and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2688
diff
changeset
|
3501 } else { |
7127de139acf
Android: Implement groupbox using RadioGroup... still missing the title and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2688
diff
changeset
|
3502 box!!.orientation = LinearLayout.HORIZONTAL |
7127de139acf
Android: Implement groupbox using RadioGroup... still missing the title and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2688
diff
changeset
|
3503 } |
7127de139acf
Android: Implement groupbox using RadioGroup... still missing the title and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2688
diff
changeset
|
3504 box!!.setPadding(pad, pad, pad, pad) |
7127de139acf
Android: Implement groupbox using RadioGroup... still missing the title and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2688
diff
changeset
|
3505 } |
7127de139acf
Android: Implement groupbox using RadioGroup... still missing the title and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2688
diff
changeset
|
3506 return box |
7127de139acf
Android: Implement groupbox using RadioGroup... still missing the title and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2688
diff
changeset
|
3507 } |
7127de139acf
Android: Implement groupbox using RadioGroup... still missing the title and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2688
diff
changeset
|
3508 |
2706
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3509 fun scrollBoxNew(type: Int, pad: Int): ScrollView? { |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3510 var scrollBox: ScrollView? = null |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3511 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3512 waitOnUiThread { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3513 val box = LinearLayout(this) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3514 scrollBox = ScrollView(this) |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3515 val dataArrayMap = SimpleArrayMap<String, Long>() |
2500
ac0b7e579229
Android: Implement dw_scrollbox_new() using ScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2499
diff
changeset
|
3516 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3517 scrollBox!!.tag = dataArrayMap |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3518 box.layoutParams = |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3519 LinearLayout.LayoutParams( |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3520 LinearLayout.LayoutParams.MATCH_PARENT, |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3521 LinearLayout.LayoutParams.MATCH_PARENT |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3522 ) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3523 if (type > 0) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3524 box.orientation = LinearLayout.VERTICAL |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3525 } else { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3526 box.orientation = LinearLayout.HORIZONTAL |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3527 } |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3528 box.setPadding(pad, pad, pad, pad) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3529 // Add a pointer back to the ScrollView |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3530 box.tag = scrollBox |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3531 scrollBox!!.addView(box) |
2500
ac0b7e579229
Android: Implement dw_scrollbox_new() using ScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2499
diff
changeset
|
3532 } |
ac0b7e579229
Android: Implement dw_scrollbox_new() using ScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2499
diff
changeset
|
3533 return scrollBox |
ac0b7e579229
Android: Implement dw_scrollbox_new() using ScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2499
diff
changeset
|
3534 } |
ac0b7e579229
Android: Implement dw_scrollbox_new() using ScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2499
diff
changeset
|
3535 |
2706
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3536 fun scrollBoxGetPos(scrollBox: ScrollView, orient: Int): Int { |
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3537 var retval: Int = -1 |
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3538 |
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3539 waitOnUiThread { |
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3540 // DW_VERT 1 |
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3541 if(orient == 1) { |
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3542 retval = scrollBox.scrollY |
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3543 } else { |
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3544 retval = scrollBox.scrollX |
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3545 } |
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3546 } |
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3547 return retval |
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3548 } |
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3549 |
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3550 fun scrollBoxGetRange(scrollBox: ScrollView, orient: Int): Int { |
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3551 var retval: Int = -1 |
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3552 |
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3553 waitOnUiThread { |
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3554 // DW_VERT 1 |
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3555 if(orient == 1) { |
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3556 retval = scrollBox.getChildAt(0).height |
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3557 } else { |
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3558 retval = scrollBox.getChildAt(0).width |
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3559 } |
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3560 } |
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3561 return retval |
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3562 } |
4e9eba7f7226
Android: Implement dw_scrollbox_get_range() and dw_scrollbox_get_pos().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2703
diff
changeset
|
3563 |
2683
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3564 // Update the layoutParams of a box after a change |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3565 private fun boxUpdate(box: LinearLayout) |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3566 { |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3567 val parent = box.parent |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3568 |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3569 if(parent is LinearLayout) { |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3570 val params = box.layoutParams as LinearLayout.LayoutParams |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3571 |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3572 if(parent.orientation == LinearLayout.VERTICAL) { |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3573 if(params.height == 0) { |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3574 box.measure(0, 0) |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3575 val calch = box.measuredHeight |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3576 |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3577 if(calch > 0) { |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3578 params.weight = calch.toFloat() |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3579 } |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3580 } |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3581 } else { |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3582 if(params.width == 0) { |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3583 box.measure(0, 0) |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3584 val calcw = box.measuredWidth |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3585 |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3586 if(calcw > 0) { |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3587 params.weight = calcw.toFloat() |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3588 } |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3589 } |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3590 } |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3591 } |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3592 } |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3593 |
2495
5664c91d03fb
Android: Attempts to sort out the various issues... still not working but...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2494
diff
changeset
|
3594 fun boxPack( |
2500
ac0b7e579229
Android: Implement dw_scrollbox_new() using ScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2499
diff
changeset
|
3595 boxview: View, |
2675
a7868380098f
Android: LinearLayout does not allow null views, if null, create a Placeholder view.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2670
diff
changeset
|
3596 packitem: View?, |
2495
5664c91d03fb
Android: Attempts to sort out the various issues... still not working but...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2494
diff
changeset
|
3597 index: Int, |
5664c91d03fb
Android: Attempts to sort out the various issues... still not working but...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2494
diff
changeset
|
3598 width: Int, |
5664c91d03fb
Android: Attempts to sort out the various issues... still not working but...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2494
diff
changeset
|
3599 height: Int, |
5664c91d03fb
Android: Attempts to sort out the various issues... still not working but...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2494
diff
changeset
|
3600 hsize: Int, |
5664c91d03fb
Android: Attempts to sort out the various issues... still not working but...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2494
diff
changeset
|
3601 vsize: Int, |
5664c91d03fb
Android: Attempts to sort out the various issues... still not working but...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2494
diff
changeset
|
3602 pad: Int |
5664c91d03fb
Android: Attempts to sort out the various issues... still not working but...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2494
diff
changeset
|
3603 ) { |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3604 waitOnUiThread { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3605 var w: Int = LinearLayout.LayoutParams.WRAP_CONTENT |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3606 var h: Int = LinearLayout.LayoutParams.WRAP_CONTENT |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3607 var box: LinearLayout? = null |
2675
a7868380098f
Android: LinearLayout does not allow null views, if null, create a Placeholder view.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2670
diff
changeset
|
3608 var item: View? = packitem |
a7868380098f
Android: LinearLayout does not allow null views, if null, create a Placeholder view.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2670
diff
changeset
|
3609 |
a7868380098f
Android: LinearLayout does not allow null views, if null, create a Placeholder view.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2670
diff
changeset
|
3610 // We can't pack nothing, so create an empty placeholder to pack |
a7868380098f
Android: LinearLayout does not allow null views, if null, create a Placeholder view.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2670
diff
changeset
|
3611 if(item == null) { |
2688
c359cbd0b20f
Android: Revert the change from Placeholder to View since it didn't solve the problem.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2687
diff
changeset
|
3612 item = Placeholder(this) |
c359cbd0b20f
Android: Revert the change from Placeholder to View since it didn't solve the problem.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2687
diff
changeset
|
3613 item.emptyVisibility = View.VISIBLE |
2675
a7868380098f
Android: LinearLayout does not allow null views, if null, create a Placeholder view.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2670
diff
changeset
|
3614 } |
2475
16d195d46f2a
Android: Implement dw_window_new(), dw_box_new() and dw_box_pack().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2474
diff
changeset
|
3615 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3616 // Handle scrollboxes by pulling the LinearLayout |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3617 // out of the ScrollView to pack into |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3618 if (boxview is LinearLayout) { |
2517
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
3619 box = boxview |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3620 } else if (boxview is ScrollView) { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3621 val sv: ScrollView = boxview |
2500
ac0b7e579229
Android: Implement dw_scrollbox_new() using ScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2499
diff
changeset
|
3622 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3623 if (sv.getChildAt(0) is LinearLayout) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3624 box = sv.getChildAt(0) as LinearLayout |
2500
ac0b7e579229
Android: Implement dw_scrollbox_new() using ScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2499
diff
changeset
|
3625 } |
ac0b7e579229
Android: Implement dw_scrollbox_new() using ScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2499
diff
changeset
|
3626 } |
ac0b7e579229
Android: Implement dw_scrollbox_new() using ScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2499
diff
changeset
|
3627 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3628 if (box != null) { |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
3629 var weight = 1F |
2553
2b4f2929408e
Android: Fix issue with specifying static sizes... still some issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2552
diff
changeset
|
3630 |
2b4f2929408e
Android: Fix issue with specifying static sizes... still some issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2552
diff
changeset
|
3631 // If it is a box, match parent based on direction |
2b4f2929408e
Android: Fix issue with specifying static sizes... still some issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2552
diff
changeset
|
3632 if ((item is LinearLayout) || (item is ScrollView)) { |
2683
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3633 item.measure(0, 0) |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3634 if (box.orientation == LinearLayout.VERTICAL) { |
2552
303f544d14fa
Android: Refactor boxPack() to try to fix non-expandable items expanding.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2551
diff
changeset
|
3635 if (hsize != 0) { |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3636 w = LinearLayout.LayoutParams.MATCH_PARENT |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3637 } |
2683
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3638 if (vsize != 0) { |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3639 val calch = item.measuredHeight |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3640 |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3641 if(calch > 0) { |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3642 weight = calch.toFloat() |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3643 } else { |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3644 weight = 1F |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3645 } |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3646 h = 0 |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3647 } |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3648 } else { |
2552
303f544d14fa
Android: Refactor boxPack() to try to fix non-expandable items expanding.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2551
diff
changeset
|
3649 if (vsize != 0) { |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3650 h = LinearLayout.LayoutParams.MATCH_PARENT |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3651 } |
2683
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3652 if (hsize != 0) { |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3653 val calcw = item.measuredWidth |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3654 |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3655 if(calcw > 0) { |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3656 weight = calcw.toFloat() |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3657 } else { |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3658 weight = 1F |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3659 } |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3660 w = 0 |
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3661 } |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3662 } |
2552
303f544d14fa
Android: Refactor boxPack() to try to fix non-expandable items expanding.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2551
diff
changeset
|
3663 // If it isn't a box... set or calculate the size as needed |
2553
2b4f2929408e
Android: Fix issue with specifying static sizes... still some issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2552
diff
changeset
|
3664 } else { |
2552
303f544d14fa
Android: Refactor boxPack() to try to fix non-expandable items expanding.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2551
diff
changeset
|
3665 if(width != -1 || height != -1) { |
303f544d14fa
Android: Refactor boxPack() to try to fix non-expandable items expanding.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2551
diff
changeset
|
3666 item.measure(0, 0) |
303f544d14fa
Android: Refactor boxPack() to try to fix non-expandable items expanding.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2551
diff
changeset
|
3667 } |
2553
2b4f2929408e
Android: Fix issue with specifying static sizes... still some issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2552
diff
changeset
|
3668 if(hsize == 0) { |
2b4f2929408e
Android: Fix issue with specifying static sizes... still some issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2552
diff
changeset
|
3669 if (width > 0) { |
2b4f2929408e
Android: Fix issue with specifying static sizes... still some issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2552
diff
changeset
|
3670 w = width |
2b4f2929408e
Android: Fix issue with specifying static sizes... still some issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2552
diff
changeset
|
3671 } |
2b4f2929408e
Android: Fix issue with specifying static sizes... still some issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2552
diff
changeset
|
3672 } else { |
2575
5beaaa4e9b03
Android: Improve the layout, if an item expands in the opposite direction of the box...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2574
diff
changeset
|
3673 if (box.orientation == LinearLayout.VERTICAL) { |
5beaaa4e9b03
Android: Improve the layout, if an item expands in the opposite direction of the box...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2574
diff
changeset
|
3674 w = LinearLayout.LayoutParams.MATCH_PARENT |
5beaaa4e9b03
Android: Improve the layout, if an item expands in the opposite direction of the box...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2574
diff
changeset
|
3675 } else { |
5beaaa4e9b03
Android: Improve the layout, if an item expands in the opposite direction of the box...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2574
diff
changeset
|
3676 if (width > 0) { |
5beaaa4e9b03
Android: Improve the layout, if an item expands in the opposite direction of the box...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2574
diff
changeset
|
3677 weight = width.toFloat() |
5beaaa4e9b03
Android: Improve the layout, if an item expands in the opposite direction of the box...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2574
diff
changeset
|
3678 } else if (width == -1) { |
5beaaa4e9b03
Android: Improve the layout, if an item expands in the opposite direction of the box...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2574
diff
changeset
|
3679 val newwidth = item.getMeasuredWidth() |
5beaaa4e9b03
Android: Improve the layout, if an item expands in the opposite direction of the box...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2574
diff
changeset
|
3680 |
5beaaa4e9b03
Android: Improve the layout, if an item expands in the opposite direction of the box...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2574
diff
changeset
|
3681 if (newwidth > 0) { |
5beaaa4e9b03
Android: Improve the layout, if an item expands in the opposite direction of the box...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2574
diff
changeset
|
3682 weight = newwidth.toFloat() |
5beaaa4e9b03
Android: Improve the layout, if an item expands in the opposite direction of the box...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2574
diff
changeset
|
3683 } |
2553
2b4f2929408e
Android: Fix issue with specifying static sizes... still some issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2552
diff
changeset
|
3684 } |
2b4f2929408e
Android: Fix issue with specifying static sizes... still some issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2552
diff
changeset
|
3685 } |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3686 } |
2553
2b4f2929408e
Android: Fix issue with specifying static sizes... still some issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2552
diff
changeset
|
3687 if(vsize == 0) { |
2b4f2929408e
Android: Fix issue with specifying static sizes... still some issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2552
diff
changeset
|
3688 if (height > 0) { |
2b4f2929408e
Android: Fix issue with specifying static sizes... still some issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2552
diff
changeset
|
3689 h = height |
2b4f2929408e
Android: Fix issue with specifying static sizes... still some issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2552
diff
changeset
|
3690 } |
2b4f2929408e
Android: Fix issue with specifying static sizes... still some issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2552
diff
changeset
|
3691 } else { |
2575
5beaaa4e9b03
Android: Improve the layout, if an item expands in the opposite direction of the box...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2574
diff
changeset
|
3692 if (box.orientation == LinearLayout.HORIZONTAL) { |
5beaaa4e9b03
Android: Improve the layout, if an item expands in the opposite direction of the box...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2574
diff
changeset
|
3693 h = LinearLayout.LayoutParams.MATCH_PARENT |
5beaaa4e9b03
Android: Improve the layout, if an item expands in the opposite direction of the box...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2574
diff
changeset
|
3694 } else { |
5beaaa4e9b03
Android: Improve the layout, if an item expands in the opposite direction of the box...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2574
diff
changeset
|
3695 if (height > 0) { |
5beaaa4e9b03
Android: Improve the layout, if an item expands in the opposite direction of the box...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2574
diff
changeset
|
3696 weight = height.toFloat() |
5beaaa4e9b03
Android: Improve the layout, if an item expands in the opposite direction of the box...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2574
diff
changeset
|
3697 } else if (height == -1) { |
5beaaa4e9b03
Android: Improve the layout, if an item expands in the opposite direction of the box...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2574
diff
changeset
|
3698 val newheight = item.getMeasuredHeight() |
5beaaa4e9b03
Android: Improve the layout, if an item expands in the opposite direction of the box...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2574
diff
changeset
|
3699 |
5beaaa4e9b03
Android: Improve the layout, if an item expands in the opposite direction of the box...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2574
diff
changeset
|
3700 if (newheight > 0) { |
5beaaa4e9b03
Android: Improve the layout, if an item expands in the opposite direction of the box...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2574
diff
changeset
|
3701 weight = newheight.toFloat() |
5beaaa4e9b03
Android: Improve the layout, if an item expands in the opposite direction of the box...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2574
diff
changeset
|
3702 } |
2553
2b4f2929408e
Android: Fix issue with specifying static sizes... still some issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2552
diff
changeset
|
3703 } |
2b4f2929408e
Android: Fix issue with specifying static sizes... still some issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2552
diff
changeset
|
3704 } |
2552
303f544d14fa
Android: Refactor boxPack() to try to fix non-expandable items expanding.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2551
diff
changeset
|
3705 } |
2500
ac0b7e579229
Android: Implement dw_scrollbox_new() using ScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2499
diff
changeset
|
3706 } |
2552
303f544d14fa
Android: Refactor boxPack() to try to fix non-expandable items expanding.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2551
diff
changeset
|
3707 |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3708 val params: LinearLayout.LayoutParams = LinearLayout.LayoutParams(w, h) |
2553
2b4f2929408e
Android: Fix issue with specifying static sizes... still some issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2552
diff
changeset
|
3709 |
2552
303f544d14fa
Android: Refactor boxPack() to try to fix non-expandable items expanding.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2551
diff
changeset
|
3710 // Handle expandable items by giving them a weight... |
303f544d14fa
Android: Refactor boxPack() to try to fix non-expandable items expanding.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2551
diff
changeset
|
3711 // in the direction of the box. |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3712 if (box.orientation == LinearLayout.VERTICAL) { |
2681
c1482518b643
Android: Fix weight based layout problems.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2677
diff
changeset
|
3713 if (vsize != 0 && weight > 0F) { |
2553
2b4f2929408e
Android: Fix issue with specifying static sizes... still some issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2552
diff
changeset
|
3714 params.weight = weight |
2681
c1482518b643
Android: Fix weight based layout problems.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2677
diff
changeset
|
3715 params.height = 0 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3716 } |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3717 } else { |
2681
c1482518b643
Android: Fix weight based layout problems.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2677
diff
changeset
|
3718 if (hsize != 0 && weight > 0F) { |
2553
2b4f2929408e
Android: Fix issue with specifying static sizes... still some issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2552
diff
changeset
|
3719 params.weight = weight |
2681
c1482518b643
Android: Fix weight based layout problems.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2677
diff
changeset
|
3720 params.width = 0 |
2500
ac0b7e579229
Android: Implement dw_scrollbox_new() using ScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2499
diff
changeset
|
3721 } |
2480
878d36588aaa
Android: Enable app rotation and fix some issues with layout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2479
diff
changeset
|
3722 } |
2552
303f544d14fa
Android: Refactor boxPack() to try to fix non-expandable items expanding.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2551
diff
changeset
|
3723 // Gravity needs to match the expandable settings |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3724 val grav: Int = Gravity.CLIP_HORIZONTAL or Gravity.CLIP_VERTICAL |
2552
303f544d14fa
Android: Refactor boxPack() to try to fix non-expandable items expanding.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2551
diff
changeset
|
3725 if (hsize != 0 && vsize != 0) { |
303f544d14fa
Android: Refactor boxPack() to try to fix non-expandable items expanding.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2551
diff
changeset
|
3726 params.gravity = Gravity.FILL or grav |
303f544d14fa
Android: Refactor boxPack() to try to fix non-expandable items expanding.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2551
diff
changeset
|
3727 } else if (hsize != 0) { |
303f544d14fa
Android: Refactor boxPack() to try to fix non-expandable items expanding.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2551
diff
changeset
|
3728 params.gravity = Gravity.FILL_HORIZONTAL or grav |
303f544d14fa
Android: Refactor boxPack() to try to fix non-expandable items expanding.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2551
diff
changeset
|
3729 } else if (vsize != 0) { |
303f544d14fa
Android: Refactor boxPack() to try to fix non-expandable items expanding.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2551
diff
changeset
|
3730 params.gravity = Gravity.FILL_VERTICAL or grav |
303f544d14fa
Android: Refactor boxPack() to try to fix non-expandable items expanding.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2551
diff
changeset
|
3731 } |
303f544d14fa
Android: Refactor boxPack() to try to fix non-expandable items expanding.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2551
diff
changeset
|
3732 // Finally add the padding |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3733 if (pad > 0) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3734 params.setMargins(pad, pad, pad, pad) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3735 } |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3736 item.layoutParams = params |
2805
ebe139dc16dd
Android: Interface Builder passes index 65535 to make sure we are packing to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2803
diff
changeset
|
3737 // If we are out of bounds, pass -1 to add to the end |
ebe139dc16dd
Android: Interface Builder passes index 65535 to make sure we are packing to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2803
diff
changeset
|
3738 if(index >= box.childCount) { |
ebe139dc16dd
Android: Interface Builder passes index 65535 to make sure we are packing to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2803
diff
changeset
|
3739 box.addView(item, -1) |
ebe139dc16dd
Android: Interface Builder passes index 65535 to make sure we are packing to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2803
diff
changeset
|
3740 } else { |
ebe139dc16dd
Android: Interface Builder passes index 65535 to make sure we are packing to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2803
diff
changeset
|
3741 box.addView(item, index) |
ebe139dc16dd
Android: Interface Builder passes index 65535 to make sure we are packing to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2803
diff
changeset
|
3742 } |
2683
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3743 boxUpdate(box) |
2500
ac0b7e579229
Android: Implement dw_scrollbox_new() using ScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2499
diff
changeset
|
3744 } |
2478
b0230e378667
Android: Improvements to boxPack to handle more parameters...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2477
diff
changeset
|
3745 } |
2475
16d195d46f2a
Android: Implement dw_window_new(), dw_box_new() and dw_box_pack().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2474
diff
changeset
|
3746 } |
16d195d46f2a
Android: Implement dw_window_new(), dw_box_new() and dw_box_pack().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2474
diff
changeset
|
3747 |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3748 fun boxUnpack(item: View) { |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3749 waitOnUiThread { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3750 val box: LinearLayout = item.parent as LinearLayout |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3751 box.removeView(item) |
2683
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3752 boxUpdate(box) |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3753 } |
2477
3fbf8783122d
Android: First functional version. Notebook-less first page of dwtest works.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2476
diff
changeset
|
3754 } |
3fbf8783122d
Android: First functional version. Notebook-less first page of dwtest works.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2476
diff
changeset
|
3755 |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3756 fun boxUnpackAtIndex(box: LinearLayout, index: Int): View? { |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3757 var item: View? = null |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3758 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3759 waitOnUiThread { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3760 item = box.getChildAt(index) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3761 box.removeView(item) |
2683
e7885fd45f7b
Android: Apply weights to boxes as well as items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2682
diff
changeset
|
3762 boxUpdate(box) |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3763 } |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3764 return item |
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3765 } |
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3766 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3767 fun buttonNew(text: String, cid: Int): Button? { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3768 var button: Button? = null |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3769 waitOnUiThread { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3770 button = Button(this) |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3771 val dataArrayMap = SimpleArrayMap<String, Long>() |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
3772 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3773 button!!.tag = dataArrayMap |
2590
8352c38bc20b
Android: Turn off Android's forcing buttons and tabs to be all caps.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2582
diff
changeset
|
3774 button!!.isAllCaps = false |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3775 button!!.text = text |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3776 button!!.id = cid |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3777 button!!.setOnClickListener { |
2614
dbcd9416e9c9
Android: Popup menus on Andoird use an anchor View not the touch location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2613
diff
changeset
|
3778 lastClickView = button!! |
2620
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
3779 eventHandlerSimple(button!!, DWEvent.CLICKED) |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3780 } |
2482
4888503c3e3e
Android: Implement dw_debug() using the Android Log class.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2481
diff
changeset
|
3781 } |
2476
20c9e83cba2a
Android: Implement dw_entryfield_new, dw_entryfield_password_new() dw_button_new(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2475
diff
changeset
|
3782 return button |
20c9e83cba2a
Android: Implement dw_entryfield_new, dw_entryfield_password_new() dw_button_new(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2475
diff
changeset
|
3783 } |
20c9e83cba2a
Android: Implement dw_entryfield_new, dw_entryfield_password_new() dw_button_new(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2475
diff
changeset
|
3784 |
2521
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3785 fun bitmapButtonNew(text: String, resid: Int): ImageButton? { |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3786 var button: ImageButton? = null |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3787 waitOnUiThread { |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3788 button = ImageButton(this) |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3789 val dataArrayMap = SimpleArrayMap<String, Long>() |
2653
297456a381e4
Android: Similar resource change for bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2652
diff
changeset
|
3790 var filename: String? = null |
2521
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3791 |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3792 button!!.tag = dataArrayMap |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3793 button!!.id = resid |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3794 button!!.setOnClickListener { |
2614
dbcd9416e9c9
Android: Popup menus on Andoird use an anchor View not the touch location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2613
diff
changeset
|
3795 lastClickView = button!! |
2620
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
3796 eventHandlerSimple(button!!, DWEvent.CLICKED) |
2521
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3797 } |
2653
297456a381e4
Android: Similar resource change for bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2652
diff
changeset
|
3798 |
297456a381e4
Android: Similar resource change for bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2652
diff
changeset
|
3799 if(resid > 0 && resid < 65536) { |
297456a381e4
Android: Similar resource change for bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2652
diff
changeset
|
3800 filename = resid.toString() |
2690
755d9ad07aaf
Android: Fix state exception by calling notifyDataSetChanged() on DWListBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2689
diff
changeset
|
3801 } else { |
755d9ad07aaf
Android: Fix state exception by calling notifyDataSetChanged() on DWListBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2689
diff
changeset
|
3802 button!!.setImageResource(resid) |
2653
297456a381e4
Android: Similar resource change for bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2652
diff
changeset
|
3803 } |
297456a381e4
Android: Similar resource change for bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2652
diff
changeset
|
3804 |
297456a381e4
Android: Similar resource change for bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2652
diff
changeset
|
3805 if(filename != null) { |
2658
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
3806 for (ext in DWImageExts) { |
2653
297456a381e4
Android: Similar resource change for bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2652
diff
changeset
|
3807 // Try to load the image, and protect against exceptions |
297456a381e4
Android: Similar resource change for bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2652
diff
changeset
|
3808 try { |
297456a381e4
Android: Similar resource change for bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2652
diff
changeset
|
3809 val f = this.assets.open(filename + ext) |
297456a381e4
Android: Similar resource change for bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2652
diff
changeset
|
3810 val b = BitmapFactory.decodeStream(f) |
297456a381e4
Android: Similar resource change for bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2652
diff
changeset
|
3811 |
297456a381e4
Android: Similar resource change for bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2652
diff
changeset
|
3812 if (b != null) { |
297456a381e4
Android: Similar resource change for bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2652
diff
changeset
|
3813 button!!.setImageBitmap(b) |
297456a381e4
Android: Similar resource change for bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2652
diff
changeset
|
3814 break |
297456a381e4
Android: Similar resource change for bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2652
diff
changeset
|
3815 } |
297456a381e4
Android: Similar resource change for bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2652
diff
changeset
|
3816 } catch (e: IOException) { |
297456a381e4
Android: Similar resource change for bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2652
diff
changeset
|
3817 } |
297456a381e4
Android: Similar resource change for bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2652
diff
changeset
|
3818 } |
297456a381e4
Android: Similar resource change for bitmap buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2652
diff
changeset
|
3819 } |
2521
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3820 } |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3821 return button |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3822 } |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3823 |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3824 fun bitmapButtonNewFromFile(text: String, cid: Int, filename: String): ImageButton? { |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3825 var button: ImageButton? = null |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3826 waitOnUiThread { |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3827 button = ImageButton(this) |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3828 val dataArrayMap = SimpleArrayMap<String, Long>() |
2521
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3829 |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3830 button!!.tag = dataArrayMap |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3831 button!!.id = cid |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3832 button!!.setOnClickListener { |
2614
dbcd9416e9c9
Android: Popup menus on Andoird use an anchor View not the touch location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2613
diff
changeset
|
3833 lastClickView = button!! |
2620
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
3834 eventHandlerSimple(button!!, DWEvent.CLICKED) |
2521
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3835 } |
2564
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
3836 |
2658
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
3837 for (ext in DWImageExts) { |
2564
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
3838 // Try to load the image, and protect against exceptions |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
3839 try { |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
3840 val f = this.assets.open(filename + ext) |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
3841 val b = BitmapFactory.decodeStream(f) |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
3842 |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
3843 if(b != null) { |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
3844 button!!.setImageBitmap(b) |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
3845 break |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
3846 } |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
3847 } catch (e: IOException) { |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
3848 } |
2521
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3849 } |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3850 } |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3851 return button |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3852 } |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3853 |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3854 fun bitmapButtonNewFromData(text: String, cid: Int, data: ByteArray, length: Int): ImageButton? { |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3855 var button: ImageButton? = null |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3856 waitOnUiThread { |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3857 button = ImageButton(this) |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3858 val dataArrayMap = SimpleArrayMap<String, Long>() |
2521
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3859 val b = BitmapFactory.decodeByteArray(data,0, length) |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3860 |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3861 button!!.tag = dataArrayMap |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3862 button!!.id = cid |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3863 button!!.setOnClickListener { |
2614
dbcd9416e9c9
Android: Popup menus on Andoird use an anchor View not the touch location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2613
diff
changeset
|
3864 lastClickView = button!! |
2620
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
3865 eventHandlerSimple(button!!, DWEvent.CLICKED) |
2521
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3866 } |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3867 button!!.setImageBitmap(b) |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3868 } |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3869 return button |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3870 } |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
3871 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3872 fun entryfieldNew(text: String, cid: Int, password: Int): EditText? { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3873 var entryfield: EditText? = null |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3874 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3875 waitOnUiThread { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3876 val dataArrayMap = SimpleArrayMap<String, Long>() |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3877 entryfield = EditText(this) |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
3878 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3879 entryfield!!.tag = dataArrayMap |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3880 entryfield!!.id = cid |
2554
4c75fb6089a9
Android: Need to set isSingleLine for entryfields.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2553
diff
changeset
|
3881 entryfield!!.isSingleLine = true |
2702
4f12dc8e8f18
Android: Implement dw_mle_set_auto_complete() in the same way as iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2701
diff
changeset
|
3882 entryfield!!.inputType = (InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS) |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3883 if (password > 0) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3884 entryfield!!.transformationMethod = PasswordTransformationMethod.getInstance() |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3885 } |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3886 entryfield!!.setText(text) |
2476
20c9e83cba2a
Android: Implement dw_entryfield_new, dw_entryfield_password_new() dw_button_new(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2475
diff
changeset
|
3887 } |
20c9e83cba2a
Android: Implement dw_entryfield_new, dw_entryfield_password_new() dw_button_new(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2475
diff
changeset
|
3888 return entryfield |
20c9e83cba2a
Android: Implement dw_entryfield_new, dw_entryfield_password_new() dw_button_new(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2475
diff
changeset
|
3889 } |
20c9e83cba2a
Android: Implement dw_entryfield_new, dw_entryfield_password_new() dw_button_new(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2475
diff
changeset
|
3890 |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3891 fun entryfieldSetLimit(entryfield: EditText, limit: Long) { |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3892 waitOnUiThread { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3893 entryfield.filters = arrayOf<InputFilter>(LengthFilter(limit.toInt())) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3894 } |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3895 } |
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3896 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3897 fun radioButtonNew(text: String, cid: Int): RadioButton? { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3898 var radiobutton: RadioButton? = null |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3899 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3900 waitOnUiThread { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3901 val dataArrayMap = SimpleArrayMap<String, Long>() |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3902 radiobutton = RadioButton(this) |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
3903 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3904 radiobutton!!.tag = dataArrayMap |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3905 radiobutton!!.id = cid |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3906 radiobutton!!.text = text |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3907 radiobutton!!.setOnClickListener { |
2614
dbcd9416e9c9
Android: Popup menus on Andoird use an anchor View not the touch location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2613
diff
changeset
|
3908 lastClickView = radiobutton!! |
2620
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
3909 eventHandlerSimple(radiobutton!!, DWEvent.CLICKED) |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3910 } |
2482
4888503c3e3e
Android: Implement dw_debug() using the Android Log class.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2481
diff
changeset
|
3911 } |
2476
20c9e83cba2a
Android: Implement dw_entryfield_new, dw_entryfield_password_new() dw_button_new(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2475
diff
changeset
|
3912 return radiobutton |
20c9e83cba2a
Android: Implement dw_entryfield_new, dw_entryfield_password_new() dw_button_new(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2475
diff
changeset
|
3913 } |
20c9e83cba2a
Android: Implement dw_entryfield_new, dw_entryfield_password_new() dw_button_new(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2475
diff
changeset
|
3914 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3915 fun checkboxNew(text: String, cid: Int): CheckBox? { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3916 var checkbox: CheckBox? = null |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3917 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3918 waitOnUiThread { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3919 val dataArrayMap = SimpleArrayMap<String, Long>() |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
3920 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3921 checkbox = CheckBox(this) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3922 checkbox!!.tag = dataArrayMap |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3923 checkbox!!.id = cid |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3924 checkbox!!.text = text |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3925 checkbox!!.setOnClickListener { |
2614
dbcd9416e9c9
Android: Popup menus on Andoird use an anchor View not the touch location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2613
diff
changeset
|
3926 lastClickView = checkbox!! |
2620
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
3927 eventHandlerSimple(checkbox!!, DWEvent.CLICKED) |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3928 } |
2482
4888503c3e3e
Android: Implement dw_debug() using the Android Log class.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2481
diff
changeset
|
3929 } |
2476
20c9e83cba2a
Android: Implement dw_entryfield_new, dw_entryfield_password_new() dw_button_new(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2475
diff
changeset
|
3930 return checkbox |
20c9e83cba2a
Android: Implement dw_entryfield_new, dw_entryfield_password_new() dw_button_new(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2475
diff
changeset
|
3931 } |
20c9e83cba2a
Android: Implement dw_entryfield_new, dw_entryfield_password_new() dw_button_new(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2475
diff
changeset
|
3932 |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3933 fun checkOrRadioSetChecked(control: View, state: Int) |
2476
20c9e83cba2a
Android: Implement dw_entryfield_new, dw_entryfield_password_new() dw_button_new(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2475
diff
changeset
|
3934 { |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3935 waitOnUiThread { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3936 if (control is CheckBox) { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3937 val checkbox: CheckBox = control |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3938 checkbox.isChecked = state != 0 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3939 } else if (control is RadioButton) { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3940 val radiobutton: RadioButton = control |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3941 radiobutton.isChecked = state != 0 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3942 } |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3943 } |
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3944 } |
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3945 |
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3946 fun checkOrRadioGetChecked(control: View): Boolean |
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3947 { |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
3948 var retval = false |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3949 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3950 waitOnUiThread { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3951 if (control is CheckBox) { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3952 val checkbox: CheckBox = control |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3953 retval = checkbox.isChecked |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3954 } else if (control is RadioButton) { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3955 val radiobutton: RadioButton = control |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3956 retval = radiobutton.isChecked |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3957 } |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3958 } |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3959 return retval |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3960 } |
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
3961 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3962 fun textNew(text: String, cid: Int, status: Int): TextView? { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3963 var textview: TextView? = null |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3964 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3965 waitOnUiThread { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3966 val dataArrayMap = SimpleArrayMap<String, Long>() |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
3967 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3968 textview = TextView(this) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3969 textview!!.tag = dataArrayMap |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3970 textview!!.id = cid |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3971 textview!!.text = text |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3972 if (status != 0) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3973 val border = GradientDrawable() |
2490
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
3974 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3975 // Set a black border on white background... |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3976 // might need to change this to invisible... |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3977 // or the color from windowSetColor |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3978 border.setColor(-0x1) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3979 border.setStroke(1, -0x1000000) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3980 textview!!.background = border |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
3981 } |
2490
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
3982 } |
2476
20c9e83cba2a
Android: Implement dw_entryfield_new, dw_entryfield_password_new() dw_button_new(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2475
diff
changeset
|
3983 return textview |
20c9e83cba2a
Android: Implement dw_entryfield_new, dw_entryfield_password_new() dw_button_new(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2475
diff
changeset
|
3984 } |
20c9e83cba2a
Android: Implement dw_entryfield_new, dw_entryfield_password_new() dw_button_new(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2475
diff
changeset
|
3985 |
2510
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
3986 fun mleNew(cid: Int): EditText? |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
3987 { |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
3988 var mle: EditText? = null |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
3989 |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
3990 waitOnUiThread { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
3991 val dataArrayMap = SimpleArrayMap<String, Long>() |
2702
4f12dc8e8f18
Android: Implement dw_mle_set_auto_complete() in the same way as iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2701
diff
changeset
|
3992 val inputType = (InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_MULTI_LINE) |
2510
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
3993 |
2701
9df2c11f020f
Android: Fix dw_mle_set_word_wrap() and dw_mle_set_cursor().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2694
diff
changeset
|
3994 mle = DWMLE(this) |
2510
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
3995 mle!!.tag = dataArrayMap |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
3996 mle!!.id = cid |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
3997 mle!!.isSingleLine = false |
2676
a43cf048ff17
Android: Fix what I thought was a MLE layout issue... but it turns out the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2675
diff
changeset
|
3998 mle!!.maxLines = Integer.MAX_VALUE |
2510
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
3999 mle!!.imeOptions = EditorInfo.IME_FLAG_NO_ENTER_ACTION |
2702
4f12dc8e8f18
Android: Implement dw_mle_set_auto_complete() in the same way as iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2701
diff
changeset
|
4000 mle!!.inputType = (inputType or InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS) |
2510
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4001 mle!!.isVerticalScrollBarEnabled = true |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4002 mle!!.scrollBarStyle = View.SCROLLBARS_INSIDE_INSET |
2703
321e2cf1282a
Android: Via testing, MLE is set to word wrap by default on most platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2702
diff
changeset
|
4003 mle!!.setHorizontallyScrolling(false) |
321e2cf1282a
Android: Via testing, MLE is set to word wrap by default on most platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2702
diff
changeset
|
4004 mle!!.isHorizontalScrollBarEnabled = false |
2581
9dea42f27b0a
Android: MLE should have TOP/LEFT gravity.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2580
diff
changeset
|
4005 mle!!.gravity = Gravity.TOP or Gravity.LEFT |
2510
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4006 } |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4007 return mle |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4008 } |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4009 |
2707
a3f6ca621453
Android: Implement dw_mle_set_visible(). Also fix various warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2706
diff
changeset
|
4010 fun mleSetVisible(mle: EditText, line: Int) |
a3f6ca621453
Android: Implement dw_mle_set_visible(). Also fix various warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2706
diff
changeset
|
4011 { |
a3f6ca621453
Android: Implement dw_mle_set_visible(). Also fix various warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2706
diff
changeset
|
4012 waitOnUiThread { |
2716
a1fea6b9f308
Android: Fix potential null pointer exception in mleSetVisible().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2715
diff
changeset
|
4013 val layout = mle.layout |
a1fea6b9f308
Android: Fix potential null pointer exception in mleSetVisible().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2715
diff
changeset
|
4014 |
a1fea6b9f308
Android: Fix potential null pointer exception in mleSetVisible().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2715
diff
changeset
|
4015 if(layout != null) { |
a1fea6b9f308
Android: Fix potential null pointer exception in mleSetVisible().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2715
diff
changeset
|
4016 val y: Int = layout.getLineTop(line) |
a1fea6b9f308
Android: Fix potential null pointer exception in mleSetVisible().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2715
diff
changeset
|
4017 |
a1fea6b9f308
Android: Fix potential null pointer exception in mleSetVisible().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2715
diff
changeset
|
4018 mle.scrollTo(0, y) |
a1fea6b9f308
Android: Fix potential null pointer exception in mleSetVisible().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2715
diff
changeset
|
4019 } |
2707
a3f6ca621453
Android: Implement dw_mle_set_visible(). Also fix various warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2706
diff
changeset
|
4020 } |
a3f6ca621453
Android: Implement dw_mle_set_visible(). Also fix various warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2706
diff
changeset
|
4021 } |
a3f6ca621453
Android: Implement dw_mle_set_visible(). Also fix various warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2706
diff
changeset
|
4022 |
2510
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4023 fun mleSetWordWrap(mle: EditText, state: Int) |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4024 { |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4025 waitOnUiThread { |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4026 if (state != 0) { |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4027 mle.setHorizontallyScrolling(false) |
2676
a43cf048ff17
Android: Fix what I thought was a MLE layout issue... but it turns out the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2675
diff
changeset
|
4028 mle.isHorizontalScrollBarEnabled = false |
2510
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4029 } else { |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4030 mle.setHorizontallyScrolling(true) |
2676
a43cf048ff17
Android: Fix what I thought was a MLE layout issue... but it turns out the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2675
diff
changeset
|
4031 mle.isHorizontalScrollBarEnabled = true |
2510
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4032 } |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4033 } |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4034 } |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4035 |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4036 fun mleSetEditable(mle: EditText, state: Int) |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4037 { |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4038 waitOnUiThread { |
2676
a43cf048ff17
Android: Fix what I thought was a MLE layout issue... but it turns out the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2675
diff
changeset
|
4039 mle.isFocusable = state != 0 |
2510
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4040 } |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4041 } |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4042 |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4043 fun mleSetCursor(mle: EditText, point: Int) |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4044 { |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4045 waitOnUiThread { |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4046 mle.setSelection(point) |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4047 } |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4048 } |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4049 |
2702
4f12dc8e8f18
Android: Implement dw_mle_set_auto_complete() in the same way as iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2701
diff
changeset
|
4050 fun mleSetAutoComplete(mle: EditText, state: Int) |
4f12dc8e8f18
Android: Implement dw_mle_set_auto_complete() in the same way as iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2701
diff
changeset
|
4051 { |
4f12dc8e8f18
Android: Implement dw_mle_set_auto_complete() in the same way as iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2701
diff
changeset
|
4052 waitOnUiThread { |
4f12dc8e8f18
Android: Implement dw_mle_set_auto_complete() in the same way as iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2701
diff
changeset
|
4053 val inputType = (InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_MULTI_LINE) |
4f12dc8e8f18
Android: Implement dw_mle_set_auto_complete() in the same way as iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2701
diff
changeset
|
4054 |
4f12dc8e8f18
Android: Implement dw_mle_set_auto_complete() in the same way as iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2701
diff
changeset
|
4055 // DW_MLE_COMPLETE_TEXT 1 |
4f12dc8e8f18
Android: Implement dw_mle_set_auto_complete() in the same way as iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2701
diff
changeset
|
4056 if((state and 1) == 1) { |
4f12dc8e8f18
Android: Implement dw_mle_set_auto_complete() in the same way as iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2701
diff
changeset
|
4057 mle.inputType = (inputType or InputType.TYPE_TEXT_FLAG_AUTO_CORRECT) |
4f12dc8e8f18
Android: Implement dw_mle_set_auto_complete() in the same way as iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2701
diff
changeset
|
4058 } else { |
4f12dc8e8f18
Android: Implement dw_mle_set_auto_complete() in the same way as iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2701
diff
changeset
|
4059 mle.inputType = (inputType or InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS) |
4f12dc8e8f18
Android: Implement dw_mle_set_auto_complete() in the same way as iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2701
diff
changeset
|
4060 } |
4f12dc8e8f18
Android: Implement dw_mle_set_auto_complete() in the same way as iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2701
diff
changeset
|
4061 } |
4f12dc8e8f18
Android: Implement dw_mle_set_auto_complete() in the same way as iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2701
diff
changeset
|
4062 } |
4f12dc8e8f18
Android: Implement dw_mle_set_auto_complete() in the same way as iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2701
diff
changeset
|
4063 |
2708
3a7dcc0ae08b
Android: Implement dw_mle_search(). Also revert lowercase() change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2707
diff
changeset
|
4064 fun mleSearch(mle: EditText, text: String, point: Int, flags: Int): Int |
3a7dcc0ae08b
Android: Implement dw_mle_search(). Also revert lowercase() change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2707
diff
changeset
|
4065 { |
3a7dcc0ae08b
Android: Implement dw_mle_search(). Also revert lowercase() change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2707
diff
changeset
|
4066 var retval: Int = -1 |
3a7dcc0ae08b
Android: Implement dw_mle_search(). Also revert lowercase() change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2707
diff
changeset
|
4067 var ignorecase: Boolean = true |
3a7dcc0ae08b
Android: Implement dw_mle_search(). Also revert lowercase() change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2707
diff
changeset
|
4068 |
3a7dcc0ae08b
Android: Implement dw_mle_search(). Also revert lowercase() change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2707
diff
changeset
|
4069 // DW_MLE_CASESENSITIVE 1 |
3a7dcc0ae08b
Android: Implement dw_mle_search(). Also revert lowercase() change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2707
diff
changeset
|
4070 if(flags == 1) { |
3a7dcc0ae08b
Android: Implement dw_mle_search(). Also revert lowercase() change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2707
diff
changeset
|
4071 ignorecase = false |
3a7dcc0ae08b
Android: Implement dw_mle_search(). Also revert lowercase() change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2707
diff
changeset
|
4072 } |
3a7dcc0ae08b
Android: Implement dw_mle_search(). Also revert lowercase() change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2707
diff
changeset
|
4073 |
3a7dcc0ae08b
Android: Implement dw_mle_search(). Also revert lowercase() change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2707
diff
changeset
|
4074 waitOnUiThread { |
3a7dcc0ae08b
Android: Implement dw_mle_search(). Also revert lowercase() change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2707
diff
changeset
|
4075 retval = mle.text.indexOf(text, point, ignorecase) |
3a7dcc0ae08b
Android: Implement dw_mle_search(). Also revert lowercase() change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2707
diff
changeset
|
4076 |
3a7dcc0ae08b
Android: Implement dw_mle_search(). Also revert lowercase() change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2707
diff
changeset
|
4077 if(retval > -1) { |
3a7dcc0ae08b
Android: Implement dw_mle_search(). Also revert lowercase() change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2707
diff
changeset
|
4078 mle.setSelection(retval, retval + text.length) |
3a7dcc0ae08b
Android: Implement dw_mle_search(). Also revert lowercase() change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2707
diff
changeset
|
4079 } |
3a7dcc0ae08b
Android: Implement dw_mle_search(). Also revert lowercase() change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2707
diff
changeset
|
4080 } |
3a7dcc0ae08b
Android: Implement dw_mle_search(). Also revert lowercase() change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2707
diff
changeset
|
4081 return retval |
3a7dcc0ae08b
Android: Implement dw_mle_search(). Also revert lowercase() change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2707
diff
changeset
|
4082 } |
3a7dcc0ae08b
Android: Implement dw_mle_search(). Also revert lowercase() change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2707
diff
changeset
|
4083 |
2510
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4084 fun mleClear(mle: EditText) |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4085 { |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4086 waitOnUiThread { |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4087 mle.setText("") |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4088 } |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4089 } |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4090 |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4091 fun mleImport(mle: EditText, text: String, startpoint: Int): Int |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4092 { |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4093 var retval: Int = startpoint |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4094 |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4095 waitOnUiThread { |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4096 val origtext = mle.text |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4097 val origlen = origtext.toString().length |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4098 |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4099 if(startpoint < 1) { |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4100 val newtext = text + origtext.toString() |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4101 |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4102 mle.setText(newtext) |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4103 retval = origlen + text.length |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4104 } else if(startpoint >= origlen) { |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4105 val newtext = origtext.toString() + text |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4106 |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4107 mle.setText(newtext) |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4108 retval = origlen + text.length |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4109 } else { |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4110 val newtext = origtext.substring(0, startpoint) + text + origtext.substring(startpoint) |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4111 |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4112 mle.setText(newtext) |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4113 retval = startpoint + text.length |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4114 } |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4115 mle.setSelection(retval) |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4116 } |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4117 return retval |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4118 } |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4119 |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4120 fun mleDelete(mle: EditText, startpoint: Int, length: Int) |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4121 { |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4122 waitOnUiThread { |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4123 val origtext = mle.text |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4124 val newtext = origtext.substring(0, startpoint) + origtext.substring(startpoint + length) |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4125 |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4126 mle.setText(newtext) |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4127 } |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4128 } |
f54051c3f2a5
Android: Implement MLE functions. Fix issues with checkboxes and sliders.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2505
diff
changeset
|
4129 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4130 fun notebookNew(cid: Int, top: Int): RelativeLayout? |
2495
5664c91d03fb
Android: Attempts to sort out the various issues... still not working but...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2494
diff
changeset
|
4131 { |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4132 var notebook: RelativeLayout? = null |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
4133 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4134 waitOnUiThread { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4135 val pager = ViewPager2(this) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4136 val tabs = TabLayout(this) |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
4137 val w: Int = RelativeLayout.LayoutParams.MATCH_PARENT |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
4138 val h: Int = RelativeLayout.LayoutParams.WRAP_CONTENT |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
4139 val dataArrayMap = SimpleArrayMap<String, Long>() |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4140 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4141 notebook = RelativeLayout(this) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4142 notebook!!.tag = dataArrayMap |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4143 notebook!!.id = cid |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4144 tabs.id = View.generateViewId() |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4145 pager.id = View.generateViewId() |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4146 pager.adapter = DWTabViewPagerAdapter() |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4147 TabLayoutMediator(tabs, pager) { tab, position -> |
2692
231f9489a38a
Android: Keep a list of tab titles in the ViewPager2 adapter and set titles in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2691
diff
changeset
|
4148 val adapter = pager.adapter as DWTabViewPagerAdapter |
231f9489a38a
Android: Keep a list of tab titles in the ViewPager2 adapter and set titles in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2691
diff
changeset
|
4149 tab.text = adapter.titleList[position] |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4150 }.attach() |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
4151 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4152 var params: RelativeLayout.LayoutParams = RelativeLayout.LayoutParams(w, h) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4153 if (top != 0) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4154 params.addRule(RelativeLayout.ALIGN_PARENT_TOP) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4155 } else { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4156 params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4157 } |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4158 tabs.tabGravity = TabLayout.GRAVITY_FILL |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4159 tabs.tabMode = TabLayout.MODE_FIXED |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4160 notebook!!.addView(tabs, params) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4161 params = RelativeLayout.LayoutParams(w, w) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4162 if (top != 0) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4163 params.addRule(RelativeLayout.BELOW, tabs.id) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4164 } else { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4165 params.addRule(RelativeLayout.ABOVE, tabs.id) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4166 } |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4167 notebook!!.addView(pager, params) |
2550
a8d90e2896bc
Android: For the moment disable swiping to change notebook pages.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2547
diff
changeset
|
4168 // TODO: Not sure if we want this all the time... |
a8d90e2896bc
Android: For the moment disable swiping to change notebook pages.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2547
diff
changeset
|
4169 // Might want to make a flag for this |
a8d90e2896bc
Android: For the moment disable swiping to change notebook pages.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2547
diff
changeset
|
4170 pager.isUserInputEnabled = false |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4171 tabs.addOnTabSelectedListener(object : OnTabSelectedListener { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4172 override fun onTabSelected(tab: TabLayout.Tab) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4173 val adapter = pager.adapter as DWTabViewPagerAdapter |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4174 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4175 pager.currentItem = tab.position |
2620
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
4176 eventHandlerNotebook(notebook!!, DWEvent.SWITCH_PAGE, adapter.pageList[tab.position]) |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4177 } |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4178 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4179 override fun onTabUnselected(tab: TabLayout.Tab) {} |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4180 override fun onTabReselected(tab: TabLayout.Tab) {} |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4181 }) |
2490
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
4182 } |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4183 return notebook |
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4184 } |
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4185 |
2494
b3e28eed0e50
Android: Fix the basics of notebook control... return actual page IDs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2493
diff
changeset
|
4186 fun notebookPageNew(notebook: RelativeLayout, flags: Long, front: Int): Long |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4187 { |
2494
b3e28eed0e50
Android: Fix the basics of notebook control... return actual page IDs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2493
diff
changeset
|
4188 var pageID = 0L |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4189 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4190 waitOnUiThread { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4191 var pager: ViewPager2? = null |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4192 var tabs: TabLayout? = null |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4193 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4194 if (notebook.getChildAt(0) is ViewPager2 && notebook.getChildAt(1) is TabLayout) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4195 pager = notebook.getChildAt(0) as ViewPager2 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4196 tabs = notebook.getChildAt(1) as TabLayout |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4197 } else if (notebook.getChildAt(1) is ViewPager2 && notebook.getChildAt(0) is TabLayout) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4198 pager = notebook.getChildAt(1) as ViewPager2 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4199 tabs = notebook.getChildAt(0) as TabLayout |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4200 } |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4201 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4202 if (pager != null && tabs != null) { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
4203 val adapter: DWTabViewPagerAdapter = pager.adapter as DWTabViewPagerAdapter |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
4204 val tab = tabs.newTab() |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4205 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4206 // Increment our page ID... making sure no duplicates exist |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4207 do { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4208 adapter.currentPageID += 1 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4209 } while (adapter.currentPageID == 0L || adapter.pageList.contains(adapter.currentPageID)) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4210 pageID = adapter.currentPageID |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4211 // Temporarily add a black tab with an empty layout/box |
2682
856d3c8b559f
Android: Fix an exception when displaying a notebook with a placeholder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2681
diff
changeset
|
4212 val placeholder = LinearLayout(this) |
856d3c8b559f
Android: Fix an exception when displaying a notebook with a placeholder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2681
diff
changeset
|
4213 placeholder.layoutParams = LinearLayout.LayoutParams( |
856d3c8b559f
Android: Fix an exception when displaying a notebook with a placeholder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2681
diff
changeset
|
4214 LinearLayout.LayoutParams.MATCH_PARENT, |
856d3c8b559f
Android: Fix an exception when displaying a notebook with a placeholder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2681
diff
changeset
|
4215 LinearLayout.LayoutParams.MATCH_PARENT |
856d3c8b559f
Android: Fix an exception when displaying a notebook with a placeholder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2681
diff
changeset
|
4216 ) |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4217 if (front != 0) { |
2682
856d3c8b559f
Android: Fix an exception when displaying a notebook with a placeholder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2681
diff
changeset
|
4218 adapter.viewList.add(0, placeholder) |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4219 adapter.pageList.add(0, pageID) |
2692
231f9489a38a
Android: Keep a list of tab titles in the ViewPager2 adapter and set titles in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2691
diff
changeset
|
4220 adapter.titleList.add(0, null) |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4221 tabs.addTab(tab, 0) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4222 } else { |
2682
856d3c8b559f
Android: Fix an exception when displaying a notebook with a placeholder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2681
diff
changeset
|
4223 adapter.viewList.add(placeholder) |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4224 adapter.pageList.add(pageID) |
2692
231f9489a38a
Android: Keep a list of tab titles in the ViewPager2 adapter and set titles in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2691
diff
changeset
|
4225 adapter.titleList.add(null) |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4226 tabs.addTab(tab) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4227 } |
2691
e13607b87517
Android: Call notifyDataSetChanged() on ViewPager2 adapters to fix some
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2690
diff
changeset
|
4228 adapter.notifyDataSetChanged() |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4229 } |
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4230 } |
2494
b3e28eed0e50
Android: Fix the basics of notebook control... return actual page IDs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2493
diff
changeset
|
4231 return pageID |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4232 } |
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4233 |
2590
8352c38bc20b
Android: Turn off Android's forcing buttons and tabs to be all caps.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2582
diff
changeset
|
4234 fun notebookCapsOff(view: View?) { |
8352c38bc20b
Android: Turn off Android's forcing buttons and tabs to be all caps.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2582
diff
changeset
|
4235 if (view !is ViewGroup) { |
8352c38bc20b
Android: Turn off Android's forcing buttons and tabs to be all caps.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2582
diff
changeset
|
4236 return |
8352c38bc20b
Android: Turn off Android's forcing buttons and tabs to be all caps.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2582
diff
changeset
|
4237 } |
8352c38bc20b
Android: Turn off Android's forcing buttons and tabs to be all caps.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2582
diff
changeset
|
4238 for (i in 0 until view.childCount) { |
8352c38bc20b
Android: Turn off Android's forcing buttons and tabs to be all caps.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2582
diff
changeset
|
4239 val child = view.getChildAt(i) |
8352c38bc20b
Android: Turn off Android's forcing buttons and tabs to be all caps.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2582
diff
changeset
|
4240 if (child is TextView) { |
8352c38bc20b
Android: Turn off Android's forcing buttons and tabs to be all caps.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2582
diff
changeset
|
4241 child.isAllCaps = false |
8352c38bc20b
Android: Turn off Android's forcing buttons and tabs to be all caps.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2582
diff
changeset
|
4242 } else { |
8352c38bc20b
Android: Turn off Android's forcing buttons and tabs to be all caps.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2582
diff
changeset
|
4243 notebookCapsOff(child) |
8352c38bc20b
Android: Turn off Android's forcing buttons and tabs to be all caps.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2582
diff
changeset
|
4244 } |
8352c38bc20b
Android: Turn off Android's forcing buttons and tabs to be all caps.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2582
diff
changeset
|
4245 } |
8352c38bc20b
Android: Turn off Android's forcing buttons and tabs to be all caps.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2582
diff
changeset
|
4246 } |
8352c38bc20b
Android: Turn off Android's forcing buttons and tabs to be all caps.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2582
diff
changeset
|
4247 |
2494
b3e28eed0e50
Android: Fix the basics of notebook control... return actual page IDs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2493
diff
changeset
|
4248 fun notebookPageDestroy(notebook: RelativeLayout, pageID: Long) |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4249 { |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4250 waitOnUiThread { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4251 var pager: ViewPager2? = null |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4252 var tabs: TabLayout? = null |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4253 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4254 if (notebook.getChildAt(0) is ViewPager2 && notebook.getChildAt(1) is TabLayout) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4255 pager = notebook.getChildAt(0) as ViewPager2 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4256 tabs = notebook.getChildAt(1) as TabLayout |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4257 } else if (notebook.getChildAt(1) is ViewPager2 && notebook.getChildAt(0) is TabLayout) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4258 pager = notebook.getChildAt(1) as ViewPager2 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4259 tabs = notebook.getChildAt(0) as TabLayout |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4260 } |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4261 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4262 if (pager != null && tabs != null) { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
4263 val adapter: DWTabViewPagerAdapter = pager.adapter as DWTabViewPagerAdapter |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4264 val index = adapter.pageList.indexOf(pageID) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4265 val tab = tabs.getTabAt(index) |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4266 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4267 if (tab != null) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4268 adapter.viewList.removeAt(index) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4269 adapter.pageList.removeAt(index) |
2692
231f9489a38a
Android: Keep a list of tab titles in the ViewPager2 adapter and set titles in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2691
diff
changeset
|
4270 adapter.titleList.removeAt(index) |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4271 tabs.removeTab(tab) |
2691
e13607b87517
Android: Call notifyDataSetChanged() on ViewPager2 adapters to fix some
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2690
diff
changeset
|
4272 adapter.notifyDataSetChanged() |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4273 } |
2494
b3e28eed0e50
Android: Fix the basics of notebook control... return actual page IDs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2493
diff
changeset
|
4274 } |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4275 } |
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4276 } |
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4277 |
2494
b3e28eed0e50
Android: Fix the basics of notebook control... return actual page IDs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2493
diff
changeset
|
4278 fun notebookPageSetText(notebook: RelativeLayout, pageID: Long, text: String) |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4279 { |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4280 waitOnUiThread { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4281 var pager: ViewPager2? = null |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4282 var tabs: TabLayout? = null |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4283 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4284 if (notebook.getChildAt(0) is ViewPager2 && notebook.getChildAt(1) is TabLayout) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4285 pager = notebook.getChildAt(0) as ViewPager2 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4286 tabs = notebook.getChildAt(1) as TabLayout |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4287 } else if (notebook.getChildAt(1) is ViewPager2 && notebook.getChildAt(0) is TabLayout) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4288 pager = notebook.getChildAt(1) as ViewPager2 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4289 tabs = notebook.getChildAt(0) as TabLayout |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4290 } |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4291 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4292 if (pager != null && tabs != null) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4293 val adapter: DWTabViewPagerAdapter = pager.adapter as DWTabViewPagerAdapter |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4294 val index = adapter.pageList.indexOf(pageID) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4295 val tab = tabs.getTabAt(index) |
2494
b3e28eed0e50
Android: Fix the basics of notebook control... return actual page IDs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2493
diff
changeset
|
4296 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4297 if (tab != null) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4298 tab.text = text |
2692
231f9489a38a
Android: Keep a list of tab titles in the ViewPager2 adapter and set titles in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2691
diff
changeset
|
4299 adapter.titleList[index] = text |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4300 } |
2590
8352c38bc20b
Android: Turn off Android's forcing buttons and tabs to be all caps.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2582
diff
changeset
|
4301 |
8352c38bc20b
Android: Turn off Android's forcing buttons and tabs to be all caps.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2582
diff
changeset
|
4302 notebookCapsOff(tabs) |
2494
b3e28eed0e50
Android: Fix the basics of notebook control... return actual page IDs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2493
diff
changeset
|
4303 } |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4304 } |
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4305 } |
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4306 |
2736
09775418c776
Android: Use "View" as the type for the viewList instead of LinearLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2735
diff
changeset
|
4307 fun notebookPagePack(notebook: RelativeLayout, pageID: Long, box: View) |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4308 { |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4309 waitOnUiThread { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4310 var pager: ViewPager2? = null |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4311 var tabs: TabLayout? = null |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4312 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4313 if (notebook.getChildAt(0) is ViewPager2 && notebook.getChildAt(1) is TabLayout) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4314 pager = notebook.getChildAt(0) as ViewPager2 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4315 tabs = notebook.getChildAt(1) as TabLayout |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4316 } else if (notebook.getChildAt(1) is ViewPager2 && notebook.getChildAt(0) is TabLayout) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4317 pager = notebook.getChildAt(1) as ViewPager2 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4318 tabs = notebook.getChildAt(0) as TabLayout |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4319 } |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4320 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4321 if (pager != null && tabs != null) { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
4322 val adapter: DWTabViewPagerAdapter = pager.adapter as DWTabViewPagerAdapter |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4323 val index = adapter.pageList.indexOf(pageID) |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4324 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4325 // Make sure the box is MATCH_PARENT |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4326 box.layoutParams = LinearLayout.LayoutParams( |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4327 LinearLayout.LayoutParams.MATCH_PARENT, |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4328 LinearLayout.LayoutParams.MATCH_PARENT |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
4329 ) |
2494
b3e28eed0e50
Android: Fix the basics of notebook control... return actual page IDs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2493
diff
changeset
|
4330 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4331 adapter.viewList[index] = box |
2691
e13607b87517
Android: Call notifyDataSetChanged() on ViewPager2 adapters to fix some
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2690
diff
changeset
|
4332 adapter.notifyDataSetChanged() |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4333 } |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4334 } |
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4335 } |
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4336 |
2494
b3e28eed0e50
Android: Fix the basics of notebook control... return actual page IDs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2493
diff
changeset
|
4337 fun notebookPageGet(notebook: RelativeLayout): Long |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4338 { |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
4339 var retval = 0L |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4340 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4341 waitOnUiThread { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4342 var pager: ViewPager2? = null |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4343 var tabs: TabLayout? = null |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4344 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4345 if (notebook.getChildAt(0) is ViewPager2 && notebook.getChildAt(1) is TabLayout) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4346 pager = notebook.getChildAt(0) as ViewPager2 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4347 tabs = notebook.getChildAt(1) as TabLayout |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4348 } else if (notebook.getChildAt(1) is ViewPager2 && notebook.getChildAt(0) is TabLayout) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4349 pager = notebook.getChildAt(1) as ViewPager2 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4350 tabs = notebook.getChildAt(0) as TabLayout |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4351 } |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4352 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4353 if (pager != null && tabs != null) { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
4354 val adapter: DWTabViewPagerAdapter = pager.adapter as DWTabViewPagerAdapter |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4355 retval = adapter.pageList.get(tabs.selectedTabPosition) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4356 } |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4357 } |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4358 return retval |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4359 } |
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4360 |
2494
b3e28eed0e50
Android: Fix the basics of notebook control... return actual page IDs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2493
diff
changeset
|
4361 fun notebookPageSet(notebook: RelativeLayout, pageID: Long) |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4362 { |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4363 waitOnUiThread { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4364 var pager: ViewPager2? = null |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4365 var tabs: TabLayout? = null |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4366 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4367 if (notebook.getChildAt(0) is ViewPager2 && notebook.getChildAt(1) is TabLayout) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4368 pager = notebook.getChildAt(0) as ViewPager2 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4369 tabs = notebook.getChildAt(1) as TabLayout |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4370 } else if (notebook.getChildAt(1) is ViewPager2 && notebook.getChildAt(0) is TabLayout) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4371 pager = notebook.getChildAt(1) as ViewPager2 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4372 tabs = notebook.getChildAt(0) as TabLayout |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4373 } |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4374 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4375 if (pager != null && tabs != null) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4376 val adapter: DWTabViewPagerAdapter = pager.adapter as DWTabViewPagerAdapter |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4377 val index = adapter.pageList.indexOf(pageID) |
2691
e13607b87517
Android: Call notifyDataSetChanged() on ViewPager2 adapters to fix some
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2690
diff
changeset
|
4378 |
e13607b87517
Android: Call notifyDataSetChanged() on ViewPager2 adapters to fix some
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2690
diff
changeset
|
4379 if (index > -1 && index < adapter.pageList.count()) { |
e13607b87517
Android: Call notifyDataSetChanged() on ViewPager2 adapters to fix some
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2690
diff
changeset
|
4380 tabs.setScrollPosition(index, 0F, true) |
e13607b87517
Android: Call notifyDataSetChanged() on ViewPager2 adapters to fix some
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2690
diff
changeset
|
4381 pager.setCurrentItem(index, true) |
e13607b87517
Android: Call notifyDataSetChanged() on ViewPager2 adapters to fix some
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2690
diff
changeset
|
4382 } |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4383 } |
2493
bca7e0ab0ccc
Android: Work on the notebook control, doesn't work yet but everything filled in.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2492
diff
changeset
|
4384 } |
2490
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
4385 } |
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
4386 |
2650
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4387 fun splitBarNew(type: Int, topleft: View?, bottomright: View?, cid: Int): ConstraintLayout? |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4388 { |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4389 var splitbar: ConstraintLayout? = null |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4390 |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4391 waitOnUiThread { |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4392 splitbar = ConstraintLayout(this) |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4393 if(splitbar != null) { |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4394 val constraintSet = ConstraintSet() |
2656
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4395 val dataArrayMap = SimpleArrayMap<String, Long>() |
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4396 |
2650
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4397 constraintSet.clone(splitbar) |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4398 |
2656
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4399 splitbar!!.tag = dataArrayMap |
2650
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4400 splitbar!!.id = cid |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4401 |
2656
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4402 // Add the special data to the array map |
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4403 dataArrayMap.put("_dw_type", type.toLong()) |
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4404 dataArrayMap.put("_dw_percent", 50000000L) |
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4405 |
2650
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4406 // Place the top/left item |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4407 if(topleft != null) { |
2651
7700c8022af3
Android: Unset ID is -1 on Android not 0, so generate a View ID if < 1 not just 0.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2650
diff
changeset
|
4408 if(topleft.id < 1) { |
2650
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4409 topleft.id = View.generateViewId() |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4410 } |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4411 splitbar!!.addView(topleft) |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4412 constraintSet.connect( |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4413 topleft.id, |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4414 ConstraintLayout.LayoutParams.TOP, |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4415 ConstraintLayout.LayoutParams.PARENT_ID, |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4416 ConstraintLayout.LayoutParams.TOP |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4417 ) |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4418 constraintSet.connect( |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4419 topleft.id, |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4420 ConstraintLayout.LayoutParams.LEFT, |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4421 ConstraintLayout.LayoutParams.PARENT_ID, |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4422 ConstraintLayout.LayoutParams.LEFT |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4423 ) |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4424 |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4425 if (type == 0) { |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4426 // Horizontal |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4427 constraintSet.connect( |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4428 topleft.id, |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4429 ConstraintLayout.LayoutParams.BOTTOM, |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4430 ConstraintLayout.LayoutParams.PARENT_ID, |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4431 ConstraintLayout.LayoutParams.BOTTOM |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4432 ) |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4433 constraintSet.constrainPercentWidth(topleft.id, 0.5F) |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4434 } else { |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4435 // Vertical |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4436 constraintSet.connect( |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4437 topleft.id, |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4438 ConstraintLayout.LayoutParams.RIGHT, |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4439 ConstraintLayout.LayoutParams.PARENT_ID, |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4440 ConstraintLayout.LayoutParams.RIGHT |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4441 ) |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4442 constraintSet.constrainPercentHeight(topleft.id, 0.5F) |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4443 } |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4444 } |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4445 |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4446 // Place the bottom/right item |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4447 if(bottomright != null) { |
2651
7700c8022af3
Android: Unset ID is -1 on Android not 0, so generate a View ID if < 1 not just 0.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2650
diff
changeset
|
4448 if (bottomright.id < 1) { |
2650
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4449 bottomright.id = View.generateViewId() |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4450 } |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4451 splitbar!!.addView(bottomright) |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4452 constraintSet.connect( |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4453 bottomright.id, |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4454 ConstraintLayout.LayoutParams.BOTTOM, |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4455 ConstraintLayout.LayoutParams.PARENT_ID, |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4456 ConstraintLayout.LayoutParams.BOTTOM |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4457 ) |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4458 constraintSet.connect( |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4459 bottomright.id, |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4460 ConstraintLayout.LayoutParams.RIGHT, |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4461 ConstraintLayout.LayoutParams.PARENT_ID, |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4462 ConstraintLayout.LayoutParams.RIGHT |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4463 ) |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4464 |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4465 if (type == 0) { |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4466 // Horizontal |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4467 constraintSet.connect( |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4468 bottomright.id, |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4469 ConstraintLayout.LayoutParams.TOP, |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4470 ConstraintLayout.LayoutParams.PARENT_ID, |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4471 ConstraintLayout.LayoutParams.TOP |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4472 ) |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4473 constraintSet.constrainPercentWidth(bottomright.id, 0.5F) |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4474 } else { |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4475 // Vertical |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4476 constraintSet.connect( |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4477 bottomright.id, |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4478 ConstraintLayout.LayoutParams.LEFT, |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4479 ConstraintLayout.LayoutParams.PARENT_ID, |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4480 ConstraintLayout.LayoutParams.LEFT |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4481 ) |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4482 constraintSet.constrainPercentHeight(bottomright.id, 0.5F) |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4483 } |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4484 } |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4485 |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4486 // finally, apply the constraint set to layout |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4487 constraintSet.applyTo(splitbar) |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4488 } |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4489 } |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4490 return splitbar |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4491 } |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4492 |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4493 fun splitBarGet(splitbar: ConstraintLayout): Float { |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4494 var position: Float = 50.0F |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4495 |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4496 waitOnUiThread { |
2656
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4497 val dataArrayMap: SimpleArrayMap<String, Long> = splitbar.tag as SimpleArrayMap<String, Long> |
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4498 var percent: Long = 50000000L |
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4499 |
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4500 if(dataArrayMap.containsKey("_dw_percent")) { |
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4501 percent = dataArrayMap.get("_dw_percent")!! |
2650
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4502 } |
2656
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4503 |
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4504 position = percent.toFloat() / 1000000.0F |
2650
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4505 } |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4506 return position |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4507 } |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4508 |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4509 fun splitBarSet(splitbar: ConstraintLayout, position: Float) { |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4510 waitOnUiThread { |
2656
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4511 val dataArrayMap: SimpleArrayMap<String, Long> = splitbar.tag as SimpleArrayMap<String, Long> |
2707
a3f6ca621453
Android: Implement dw_mle_set_visible(). Also fix various warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2706
diff
changeset
|
4512 val percent: Float = position * 1000000.0F |
2656
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4513 |
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4514 if(percent > 0F) { |
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4515 val topleft: View? = splitbar.getChildAt(0) |
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4516 val bottomright: View? = splitbar.getChildAt(1) |
2650
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4517 val constraintSet = ConstraintSet() |
2656
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4518 var type: Long = 0L |
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4519 |
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4520 if (dataArrayMap.containsKey("_dw_type")) { |
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4521 type = dataArrayMap.get("_dw_type")!! |
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4522 } |
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4523 dataArrayMap.put("_dw_percent", percent.toLong()) |
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4524 |
2650
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4525 constraintSet.clone(splitbar) |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4526 if (topleft != null) { |
2656
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4527 if (type == 1L) { |
2650
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4528 constraintSet.constrainPercentHeight(topleft.id, position / 100.0F) |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4529 } else { |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4530 constraintSet.constrainPercentWidth(topleft.id, position / 100.0F) |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4531 } |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4532 } |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4533 if (bottomright != null) { |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4534 val altper: Float = (100.0F - position) / 100.0F |
2656
2bdbd5e83654
Android: Save splitbar settings in dataArrayMap instead of attempting to calculate them.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2655
diff
changeset
|
4535 if (type == 1L) { |
2650
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4536 constraintSet.constrainPercentHeight(bottomright.id, altper) |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4537 } else { |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4538 constraintSet.constrainPercentWidth(bottomright.id, altper) |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4539 } |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4540 } |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4541 constraintSet.applyTo(splitbar) |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4542 } |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4543 } |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4544 } |
7101b5692601
Android: Attempt at implementing splitbar using ConstraintLayout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2643
diff
changeset
|
4545 |
2720
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4546 fun scrollBarNew(vertical: Int, cid: Int): DWSlider? |
2719
6754e8f70142
Android: Split out scrollbar to a separate implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2716
diff
changeset
|
4547 { |
2720
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4548 var scrollbar: DWSlider? = null |
2719
6754e8f70142
Android: Split out scrollbar to a separate implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2716
diff
changeset
|
4549 |
6754e8f70142
Android: Split out scrollbar to a separate implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2716
diff
changeset
|
4550 waitOnUiThread { |
6754e8f70142
Android: Split out scrollbar to a separate implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2716
diff
changeset
|
4551 val dataArrayMap = SimpleArrayMap<String, Long>() |
6754e8f70142
Android: Split out scrollbar to a separate implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2716
diff
changeset
|
4552 |
2720
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4553 scrollbar = DWSlider(this) |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4554 scrollbar!!.tag = dataArrayMap |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4555 scrollbar!!.id = cid |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4556 scrollbar!!.slider.max = 1 |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4557 scrollbar!!.slider.progressTintList = null |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4558 scrollbar!!.slider.progressBackgroundTintList = null |
2719
6754e8f70142
Android: Split out scrollbar to a separate implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2716
diff
changeset
|
4559 if (vertical != 0) { |
2720
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4560 scrollbar!!.slider.rotation = 90F |
2719
6754e8f70142
Android: Split out scrollbar to a separate implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2716
diff
changeset
|
4561 } |
2720
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4562 scrollbar!!.slider.setOnSeekBarChangeListener(object : OnSeekBarChangeListener { |
2719
6754e8f70142
Android: Split out scrollbar to a separate implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2716
diff
changeset
|
4563 override fun onStopTrackingTouch(seekBar: SeekBar) { |
6754e8f70142
Android: Split out scrollbar to a separate implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2716
diff
changeset
|
4564 } |
6754e8f70142
Android: Split out scrollbar to a separate implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2716
diff
changeset
|
4565 |
6754e8f70142
Android: Split out scrollbar to a separate implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2716
diff
changeset
|
4566 override fun onStartTrackingTouch(seekBar: SeekBar) { |
6754e8f70142
Android: Split out scrollbar to a separate implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2716
diff
changeset
|
4567 } |
6754e8f70142
Android: Split out scrollbar to a separate implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2716
diff
changeset
|
4568 |
6754e8f70142
Android: Split out scrollbar to a separate implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2716
diff
changeset
|
4569 override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { |
2720
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4570 eventHandlerInt(scrollbar as View, DWEvent.VALUE_CHANGED, scrollbar!!.slider.progress, 0, 0, 0) |
2719
6754e8f70142
Android: Split out scrollbar to a separate implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2716
diff
changeset
|
4571 } |
6754e8f70142
Android: Split out scrollbar to a separate implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2716
diff
changeset
|
4572 }) |
6754e8f70142
Android: Split out scrollbar to a separate implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2716
diff
changeset
|
4573 } |
2720
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4574 return scrollbar |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4575 } |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4576 |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4577 fun sliderNew(vertical: Int, increments: Int, cid: Int): DWSlider? |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
4578 { |
2720
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4579 var slider: DWSlider? = null |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4580 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4581 waitOnUiThread { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
4582 val dataArrayMap = SimpleArrayMap<String, Long>() |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
4583 |
2720
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4584 slider = DWSlider(this) |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4585 slider!!.tag = dataArrayMap |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4586 slider!!.id = cid |
2720
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4587 slider!!.slider.max = increments |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4588 if (vertical != 0) { |
2720
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4589 slider!!.slider.rotation = 90F |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4590 } |
2720
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4591 slider!!.slider.setOnSeekBarChangeListener(object : OnSeekBarChangeListener { |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4592 override fun onStopTrackingTouch(seekBar: SeekBar) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4593 } |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4594 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4595 override fun onStartTrackingTouch(seekBar: SeekBar) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4596 } |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4597 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4598 override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { |
2720
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4599 eventHandlerInt(slider as View, DWEvent.VALUE_CHANGED, slider!!.slider.progress, 0, 0, 0) |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4600 } |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4601 }) |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
4602 } |
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
4603 return slider |
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
4604 } |
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
4605 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4606 fun percentNew(cid: Int): ProgressBar? |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
4607 { |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4608 var percent: ProgressBar? = null |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4609 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4610 waitOnUiThread { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
4611 val dataArrayMap = SimpleArrayMap<String, Long>() |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
4612 |
2574
5b13bb267364
Android: Percent widget should be using horizontal ProgressBar.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2573
diff
changeset
|
4613 percent = ProgressBar(this,null, R.attr.progressBarStyleHorizontal) |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4614 percent!!.tag = dataArrayMap |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4615 percent!!.id = cid |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4616 percent!!.max = 100 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4617 } |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
4618 return percent |
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
4619 } |
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
4620 |
2720
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4621 fun percentGetPos(percent: View): Int |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
4622 { |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
4623 var retval = 0 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4624 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4625 waitOnUiThread { |
2720
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4626 var progress: ProgressBar |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4627 |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4628 if(percent is ProgressBar) { |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4629 progress = percent as ProgressBar |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4630 } else { |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4631 val slider = percent as DWSlider |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4632 progress = slider.slider |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4633 } |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4634 retval = progress.progress |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4635 } |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4636 return retval |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
4637 } |
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
4638 |
2720
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4639 fun percentSetPos(percent: View, position: Int) |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
4640 { |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4641 waitOnUiThread { |
2720
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4642 var progress: ProgressBar |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4643 |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4644 if(percent is ProgressBar) { |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4645 progress = percent as ProgressBar |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4646 } else { |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4647 val slider = percent as DWSlider |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4648 progress = slider.slider |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4649 } |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4650 progress.progress = position |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4651 } |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4652 } |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4653 |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4654 fun percentSetRange(percent: View, range: Int) |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
4655 { |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4656 waitOnUiThread { |
2720
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4657 var progress: ProgressBar |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4658 |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4659 if(percent is ProgressBar) { |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4660 progress = percent as ProgressBar |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4661 } else { |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4662 val slider = percent as DWSlider |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4663 progress = slider.slider |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4664 } |
9ce1649b0fbd
Android: Fix vertical sliders/scrollbars by creating a DWSlider class to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2719
diff
changeset
|
4665 progress.max = range |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4666 } |
2492
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
4667 } |
e2ca6c1a4661
Android: Implement: slider, percent, scrollbar, checkbox_set/get box_unpack_at_index(),
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2491
diff
changeset
|
4668 |
2501
41984ffb5ca2
Android: Initial implement of HTML control with WebView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2500
diff
changeset
|
4669 fun htmlNew(cid: Int): WebView? |
41984ffb5ca2
Android: Initial implement of HTML control with WebView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2500
diff
changeset
|
4670 { |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4671 var html: WebView? = null |
2501
41984ffb5ca2
Android: Initial implement of HTML control with WebView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2500
diff
changeset
|
4672 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4673 waitOnUiThread { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
4674 val dataArrayMap = SimpleArrayMap<String, Long>() |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4675 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4676 html = WebView(this) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4677 html!!.tag = dataArrayMap |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4678 html!!.id = cid |
2505
a149dabf6a1f
Android: HTML touchups, implement DW_SIGNAL_HTML_CHANGED: STARTED and COMPLETE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2503
diff
changeset
|
4679 // Configure a few settings to make it behave as we expect |
a149dabf6a1f
Android: HTML touchups, implement DW_SIGNAL_HTML_CHANGED: STARTED and COMPLETE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2503
diff
changeset
|
4680 html!!.webViewClient = DWWebViewClient() |
a149dabf6a1f
Android: HTML touchups, implement DW_SIGNAL_HTML_CHANGED: STARTED and COMPLETE.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2503
diff
changeset
|
4681 html!!.settings.javaScriptEnabled = true |
2501
41984ffb5ca2
Android: Initial implement of HTML control with WebView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2500
diff
changeset
|
4682 } |
41984ffb5ca2
Android: Initial implement of HTML control with WebView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2500
diff
changeset
|
4683 return html |
41984ffb5ca2
Android: Initial implement of HTML control with WebView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2500
diff
changeset
|
4684 } |
41984ffb5ca2
Android: Initial implement of HTML control with WebView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2500
diff
changeset
|
4685 |
41984ffb5ca2
Android: Initial implement of HTML control with WebView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2500
diff
changeset
|
4686 fun htmlLoadURL(html: WebView, url: String) |
41984ffb5ca2
Android: Initial implement of HTML control with WebView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2500
diff
changeset
|
4687 { |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4688 waitOnUiThread { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4689 html.loadUrl(url) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4690 } |
2501
41984ffb5ca2
Android: Initial implement of HTML control with WebView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2500
diff
changeset
|
4691 } |
41984ffb5ca2
Android: Initial implement of HTML control with WebView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2500
diff
changeset
|
4692 |
41984ffb5ca2
Android: Initial implement of HTML control with WebView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2500
diff
changeset
|
4693 fun htmlRaw(html: WebView, data: String) |
41984ffb5ca2
Android: Initial implement of HTML control with WebView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2500
diff
changeset
|
4694 { |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4695 waitOnUiThread { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4696 val encodedHtml: String = Base64.encodeToString(data.toByteArray(), Base64.NO_PADDING) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4697 html.loadData(encodedHtml, "text/html", "base64") |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4698 } |
2501
41984ffb5ca2
Android: Initial implement of HTML control with WebView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2500
diff
changeset
|
4699 } |
41984ffb5ca2
Android: Initial implement of HTML control with WebView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2500
diff
changeset
|
4700 |
41984ffb5ca2
Android: Initial implement of HTML control with WebView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2500
diff
changeset
|
4701 fun htmlJavascriptRun(html: WebView, javascript: String, data: Long) |
41984ffb5ca2
Android: Initial implement of HTML control with WebView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2500
diff
changeset
|
4702 { |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4703 waitOnUiThread { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4704 html.evaluateJavascript(javascript) { value -> |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4705 // Execute onReceiveValue's code |
2620
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
4706 eventHandlerHTMLResult(html, DWEvent.HTML_RESULT, value, data) |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4707 } |
2501
41984ffb5ca2
Android: Initial implement of HTML control with WebView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2500
diff
changeset
|
4708 } |
41984ffb5ca2
Android: Initial implement of HTML control with WebView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2500
diff
changeset
|
4709 } |
41984ffb5ca2
Android: Initial implement of HTML control with WebView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2500
diff
changeset
|
4710 |
41984ffb5ca2
Android: Initial implement of HTML control with WebView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2500
diff
changeset
|
4711 fun htmlAction(html: WebView, action: Int) |
41984ffb5ca2
Android: Initial implement of HTML control with WebView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2500
diff
changeset
|
4712 { |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4713 waitOnUiThread { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4714 when (action) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4715 0 -> html.goBack() |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4716 1 -> html.goForward() |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4717 2 -> html.loadUrl("http://dwindows.netlabs.org") |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4718 4 -> html.reload() |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4719 5 -> html.stopLoading() |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
4720 } |
2501
41984ffb5ca2
Android: Initial implement of HTML control with WebView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2500
diff
changeset
|
4721 } |
41984ffb5ca2
Android: Initial implement of HTML control with WebView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2500
diff
changeset
|
4722 } |
41984ffb5ca2
Android: Initial implement of HTML control with WebView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2500
diff
changeset
|
4723 |
2520
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4724 fun spinButtonNew(text: String, cid: Int): DWSpinButton? |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4725 { |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4726 var spinbutton: DWSpinButton? = null |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4727 |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4728 waitOnUiThread { |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
4729 val dataArrayMap = SimpleArrayMap<String, Long>() |
2520
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4730 val newval = text.toLongOrNull() |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4731 |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4732 spinbutton = DWSpinButton(this) |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4733 spinbutton!!.tag = dataArrayMap |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4734 spinbutton!!.id = cid |
2702
4f12dc8e8f18
Android: Implement dw_mle_set_auto_complete() in the same way as iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2701
diff
changeset
|
4735 spinbutton!!.inputType = (InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS) |
2520
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4736 spinbutton!!.setText(text) |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4737 if(newval != null) { |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4738 spinbutton!!.value = newval |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4739 } |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4740 } |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4741 return spinbutton |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4742 } |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4743 |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4744 fun spinButtonSetPos(spinbutton: DWSpinButton, position: Long) |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4745 { |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4746 waitOnUiThread { |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4747 spinbutton.value = position |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4748 spinbutton.setText(position.toString()) |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4749 } |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4750 } |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4751 |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4752 fun spinButtonSetLimits(spinbutton: DWSpinButton, upper: Long, lower: Long) |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4753 { |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4754 waitOnUiThread { |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4755 spinbutton.maximum = upper |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4756 spinbutton.minimum = lower |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4757 if(spinbutton.value > upper) { |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4758 spinbutton.value = upper |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4759 } |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4760 if(spinbutton.value < lower) { |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4761 spinbutton.value = lower |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4762 } |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4763 spinbutton.setText(spinbutton.value.toString()) |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4764 } |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4765 } |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4766 |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4767 fun spinButtonGetPos(spinbutton: DWSpinButton): Long |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4768 { |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4769 var retval: Long = 0 |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4770 |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4771 waitOnUiThread { |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4772 val newvalue = spinbutton.text.toString().toLongOrNull() |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4773 |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4774 if(newvalue == null) { |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4775 retval = spinbutton.value |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4776 } else { |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4777 retval = newvalue |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4778 } |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4779 } |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4780 return retval |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4781 } |
167af4b0004b
Android: Implement spinbuttons and callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2519
diff
changeset
|
4782 |
2515
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
4783 fun comboBoxNew(text: String, cid: Int): DWComboBox? |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
4784 { |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
4785 var combobox: DWComboBox? = null |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
4786 |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
4787 waitOnUiThread { |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
4788 val dataArrayMap = SimpleArrayMap<String, Long>() |
2515
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
4789 |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
4790 combobox = DWComboBox(this) |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
4791 combobox!!.tag = dataArrayMap |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
4792 combobox!!.id = cid |
2702
4f12dc8e8f18
Android: Implement dw_mle_set_auto_complete() in the same way as iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2701
diff
changeset
|
4793 combobox!!.inputType = (InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS) |
2517
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
4794 combobox!!.setText(text) |
2515
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
4795 } |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
4796 return combobox |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
4797 } |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
4798 |
2775
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
4799 fun treeNew(cid: Int): DWTree? |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
4800 { |
2775
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
4801 var tree: DWTree? = null |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
4802 |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
4803 waitOnUiThread { |
2775
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
4804 tree = DWTree(this) |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
4805 if(tree != null) { |
2775
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
4806 val dataArrayMap = SimpleArrayMap<String, Long>() |
2774
94af460bb954
Android: Implement dw_tree_new() and verify code doesn't crash.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2773
diff
changeset
|
4807 val factory = object : DWTreeViewHolderFactory { |
94af460bb954
Android: Implement dw_tree_new() and verify code doesn't crash.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2773
diff
changeset
|
4808 override fun getTreeViewHolder(view: View?, layout: Int): DWTreeViewHolder { |
94af460bb954
Android: Implement dw_tree_new() and verify code doesn't crash.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2773
diff
changeset
|
4809 return DWTreeCustomViewHolder(view!!) |
94af460bb954
Android: Implement dw_tree_new() and verify code doesn't crash.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2773
diff
changeset
|
4810 } |
94af460bb954
Android: Implement dw_tree_new() and verify code doesn't crash.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2773
diff
changeset
|
4811 } |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
4812 val treeViewAdapter = DWTreeViewAdapter(factory) |
2775
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
4813 tree!!.tag = dataArrayMap |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
4814 tree!!.id = cid |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
4815 tree!!.adapter = treeViewAdapter |
2782
dff8fb5ddadd
Android: Added layout manager and code to trigger data change updates.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2781
diff
changeset
|
4816 tree!!.layoutManager = LinearLayoutManager(this) |
2785
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
4817 treeViewAdapter.setTreeItemLongClickListener { treeitem: DWTreeItem?, view: View? -> |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
4818 if(treeitem != null) { |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
4819 eventHandlerTree(tree!!, DWEvent.ITEM_CONTEXT, treeitem, |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
4820 treeitem.getTitle(), treeitem.getData()) |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
4821 } |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
4822 true |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
4823 } |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
4824 treeViewAdapter.setTreeItemClickListener { treeitem: DWTreeItem?, view: View? -> |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
4825 if(treeitem != null) { |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
4826 eventHandlerTree(tree!!, DWEvent.ITEM_SELECT, treeitem, |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
4827 treeitem.getTitle(), treeitem.getData()) |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
4828 } |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
4829 true |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
4830 } |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
4831 treeViewAdapter.setTreeItemExpandListener { treeitem: DWTreeItem?, view: View? -> |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
4832 if(treeitem != null) { |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
4833 eventHandlerTreeItem(tree!!, DWEvent.TREE_EXPAND, treeitem) |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
4834 } |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
4835 true |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
4836 } |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
4837 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
4838 } |
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
4839 return tree |
2774
94af460bb954
Android: Implement dw_tree_new() and verify code doesn't crash.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2773
diff
changeset
|
4840 } |
2773
f207b7ee177f
Android: Experimental Kotlin tree view implmentation, not enabled yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2756
diff
changeset
|
4841 |
2776
858155527b05
Android: Minor tree changes... mostly testing my system to push changes to GitHub.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2775
diff
changeset
|
4842 fun treeInsertAfter(tree: DWTree, item: DWTreeItem?, title: String, icon: Drawable, parent: DWTreeItem?, itemdata: Long): DWTreeItem? |
2775
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
4843 { |
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
4844 var treeitem: DWTreeItem? = null |
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
4845 |
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
4846 waitOnUiThread { |
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
4847 var treeViewAdapter = tree.adapter as DWTreeViewAdapter |
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
4848 |
2777
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4849 treeitem = DWTreeItem(title, icon, itemdata, parent) |
2775
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
4850 if(parent == null) { |
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
4851 tree.roots.add(treeitem!!) |
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
4852 } else { |
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
4853 parent.addChild(treeitem!!) |
2777
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4854 } |
2783
1b7c1b6ee760
Android: Fix tree basic functionality... need to add child branches,
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2782
diff
changeset
|
4855 tree.updateTree() |
2775
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
4856 } |
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
4857 return treeitem |
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
4858 } |
5f77f52df8ac
Android: Work in progress changes to get the tree working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2774
diff
changeset
|
4859 |
2777
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4860 fun treeGetTitle(tree: DWTree, item: DWTreeItem): String? |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4861 { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4862 var retval: String? = null |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4863 |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4864 waitOnUiThread { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4865 retval = item.getTitle() |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4866 } |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4867 return retval |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4868 } |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4869 |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4870 fun treeGetParent(tree: DWTree, item: DWTreeItem): DWTreeItem? |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4871 { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4872 var retval: DWTreeItem? = null |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4873 |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4874 waitOnUiThread { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4875 retval = item.getParent() |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4876 } |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4877 return retval |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4878 } |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4879 |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4880 fun treeItemChange(tree: DWTree, item: DWTreeItem, title: String?, icon: Drawable?) |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4881 { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4882 waitOnUiThread { |
2782
dff8fb5ddadd
Android: Added layout manager and code to trigger data change updates.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2781
diff
changeset
|
4883 var changed = false |
dff8fb5ddadd
Android: Added layout manager and code to trigger data change updates.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2781
diff
changeset
|
4884 |
2777
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4885 if(title != null) { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4886 item.setTitle(title) |
2782
dff8fb5ddadd
Android: Added layout manager and code to trigger data change updates.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2781
diff
changeset
|
4887 changed = true |
2777
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4888 } |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4889 if(icon != null) { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4890 item.setIcon(icon) |
2782
dff8fb5ddadd
Android: Added layout manager and code to trigger data change updates.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2781
diff
changeset
|
4891 changed = true |
dff8fb5ddadd
Android: Added layout manager and code to trigger data change updates.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2781
diff
changeset
|
4892 } |
dff8fb5ddadd
Android: Added layout manager and code to trigger data change updates.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2781
diff
changeset
|
4893 if(changed == true) { |
dff8fb5ddadd
Android: Added layout manager and code to trigger data change updates.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2781
diff
changeset
|
4894 var treeViewAdapter = tree.adapter as DWTreeViewAdapter |
dff8fb5ddadd
Android: Added layout manager and code to trigger data change updates.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2781
diff
changeset
|
4895 treeViewAdapter.notifyDataSetChanged() |
2777
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4896 } |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4897 } |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4898 } |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4899 |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4900 fun treeItemSetData(tree: DWTree, item: DWTreeItem, data: Long) |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4901 { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4902 waitOnUiThread { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4903 item.setData(data) |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4904 } |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4905 } |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4906 |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4907 fun treeItemGetData(tree: DWTree, item: DWTreeItem): Long |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4908 { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4909 var retval: Long = 0 |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4910 |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4911 waitOnUiThread { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4912 retval = item.getData() |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4913 } |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4914 return retval |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4915 } |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4916 |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4917 fun treeItemSelect(tree: DWTree, item: DWTreeItem) |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4918 { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4919 waitOnUiThread { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4920 item.setSelected(true) |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4921 } |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4922 } |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4923 |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4924 fun treeItemExpand(tree: DWTree, item: DWTreeItem, state: Int) |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4925 { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4926 waitOnUiThread { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4927 val treeViewAdapter = tree.adapter as DWTreeViewAdapter |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4928 |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4929 if(state != 0) { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4930 treeViewAdapter.expandNode(item) |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4931 } else { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4932 treeViewAdapter.collapseNode(item) |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4933 } |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4934 } |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4935 } |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4936 |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4937 fun treeItemDelete(tree: DWTree, item: DWTreeItem) |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4938 { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4939 // TODO: Implement this |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4940 } |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4941 |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4942 fun treeClear(tree: DWTree) |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4943 { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4944 waitOnUiThread { |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4945 val treeViewAdapter = tree.adapter as DWTreeViewAdapter |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4946 treeViewAdapter.clear() |
2797
62837ceeec46
Android: Fix dw_tree_clear(), need to clear the roots too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2796
diff
changeset
|
4947 tree.roots.clear() |
2777
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4948 } |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4949 } |
7d7eac751f7d
Android: Connect the C API to the Kotlin tree implementation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2776
diff
changeset
|
4950 |
2556
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
4951 fun containerNew(cid: Int, multi: Int): ListView? |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
4952 { |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
4953 var cont: ListView? = null |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
4954 |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
4955 waitOnUiThread { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
4956 val dataArrayMap = SimpleArrayMap<String, Long>() |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
4957 val adapter = DWContainerAdapter(this) |
2556
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
4958 |
2834
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
4959 // Save the global container mode into the adapter |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
4960 adapter.contMode = contMode |
2556
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
4961 cont = ListView(this) |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
4962 cont!!.tag = dataArrayMap |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
4963 cont!!.id = cid |
2560
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
4964 cont!!.adapter = adapter |
2556
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
4965 if(multi != 0) { |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
4966 cont!!.choiceMode = ListView.CHOICE_MODE_MULTIPLE |
2556
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
4967 } |
2560
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
4968 cont!!.setOnItemClickListener { parent, view, position, id -> |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
4969 val title = adapter.model.getRowTitle(position) |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
4970 val data = adapter.model.getRowData(position) |
2613
72f1141c07aa
Android: Standardize DWContainer behavior part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2611
diff
changeset
|
4971 val now = System.currentTimeMillis() |
2752
d355c6abbba6
Android: Add a DWContainerRow class implmenting LinearLayout and Checkable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2751
diff
changeset
|
4972 val rowView: DWContainerRow = view as DWContainerRow |
2560
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
4973 |
2563
56183bef6793
Android: Use ItemClick for the ITEM_SELECT event and the API 23
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2562
diff
changeset
|
4974 view.isSelected = !view.isSelected |
2754
e256bd8628ba
Andrdoi: Attempt to fix a number of issues querying containers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2753
diff
changeset
|
4975 rowView.toggle() |
2563
56183bef6793
Android: Use ItemClick for the ITEM_SELECT event and the API 23
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2562
diff
changeset
|
4976 adapter.selectedItem = position |
2614
dbcd9416e9c9
Android: Popup menus on Andoird use an anchor View not the touch location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2613
diff
changeset
|
4977 lastClickView = cont!! |
2613
72f1141c07aa
Android: Standardize DWContainer behavior part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2611
diff
changeset
|
4978 // If we are single select or we got a double tap... |
72f1141c07aa
Android: Standardize DWContainer behavior part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2611
diff
changeset
|
4979 // Generate an ENTER event |
72f1141c07aa
Android: Standardize DWContainer behavior part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2611
diff
changeset
|
4980 if(cont!!.choiceMode != ListView.CHOICE_MODE_MULTIPLE || |
72f1141c07aa
Android: Standardize DWContainer behavior part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2611
diff
changeset
|
4981 (position == adapter.lastClickRow && |
72f1141c07aa
Android: Standardize DWContainer behavior part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2611
diff
changeset
|
4982 (now - adapter.lastClick) < ViewConfiguration.getDoubleTapTimeout())) { |
2620
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
4983 eventHandlerContainer(cont!!, DWEvent.ITEM_ENTER, title, 0, 0, data) |
2613
72f1141c07aa
Android: Standardize DWContainer behavior part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2611
diff
changeset
|
4984 } else { |
72f1141c07aa
Android: Standardize DWContainer behavior part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2611
diff
changeset
|
4985 // If we are mutiple select, generate a SELECT event |
2620
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
4986 eventHandlerContainer(cont!!, DWEvent.ITEM_SELECT, title, 0, 0, data) |
2613
72f1141c07aa
Android: Standardize DWContainer behavior part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2611
diff
changeset
|
4987 } |
72f1141c07aa
Android: Standardize DWContainer behavior part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2611
diff
changeset
|
4988 adapter.lastClick = now |
72f1141c07aa
Android: Standardize DWContainer behavior part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2611
diff
changeset
|
4989 adapter.lastClickRow = position |
2563
56183bef6793
Android: Use ItemClick for the ITEM_SELECT event and the API 23
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2562
diff
changeset
|
4990 } |
56183bef6793
Android: Use ItemClick for the ITEM_SELECT event and the API 23
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2562
diff
changeset
|
4991 cont!!.setOnContextClickListener { |
56183bef6793
Android: Use ItemClick for the ITEM_SELECT event and the API 23
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2562
diff
changeset
|
4992 if(adapter.selectedItem > -1 && adapter.selectedItem < adapter.model.numberOfRows()) { |
56183bef6793
Android: Use ItemClick for the ITEM_SELECT event and the API 23
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2562
diff
changeset
|
4993 val title = adapter.model.getRowTitle(adapter.selectedItem) |
56183bef6793
Android: Use ItemClick for the ITEM_SELECT event and the API 23
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2562
diff
changeset
|
4994 val data = adapter.model.getRowData(adapter.selectedItem) |
56183bef6793
Android: Use ItemClick for the ITEM_SELECT event and the API 23
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2562
diff
changeset
|
4995 |
2614
dbcd9416e9c9
Android: Popup menus on Andoird use an anchor View not the touch location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2613
diff
changeset
|
4996 lastClickView = cont!! |
2620
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
4997 eventHandlerContainer(cont!!, DWEvent.ITEM_CONTEXT, title, 0, 0, data) |
2563
56183bef6793
Android: Use ItemClick for the ITEM_SELECT event and the API 23
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2562
diff
changeset
|
4998 } |
56183bef6793
Android: Use ItemClick for the ITEM_SELECT event and the API 23
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2562
diff
changeset
|
4999 true |
2560
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5000 } |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5001 cont!!.setOnItemLongClickListener { parent, view, position, id -> |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5002 val title = adapter.model.getRowTitle(position) |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5003 val data = adapter.model.getRowData(position) |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5004 |
2614
dbcd9416e9c9
Android: Popup menus on Andoird use an anchor View not the touch location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2613
diff
changeset
|
5005 lastClickView = cont!! |
2620
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
5006 eventHandlerContainer(cont!!, DWEvent.ITEM_CONTEXT, title, 0, 0, data) |
2560
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5007 true |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5008 } |
2556
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5009 } |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5010 return cont |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5011 } |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5012 |
2580
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
5013 fun containerSetStripe(cont: ListView, oddcolor: Long, evencolor: Long) |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
5014 { |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
5015 waitOnUiThread { |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
5016 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
5017 |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
5018 if(oddcolor == -1L) { |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
5019 adapter.oddColor = null |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
5020 } else if(evencolor == -2L) { |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
5021 if(darkMode == 1) { |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
5022 adapter.oddColor = Color.rgb(100, 100, 100) |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
5023 } else { |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
5024 adapter.oddColor = Color.rgb(230, 230, 230) |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
5025 } |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
5026 } else { |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
5027 adapter.oddColor = colorFromDW(oddcolor) |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
5028 } |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
5029 if(evencolor == -1L || evencolor == -2L) { |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
5030 adapter.evenColor = null |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
5031 } else { |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
5032 adapter.evenColor = colorFromDW(evencolor) |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
5033 } |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
5034 } |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
5035 } |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
5036 |
2754
e256bd8628ba
Andrdoi: Attempt to fix a number of issues querying containers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2753
diff
changeset
|
5037 // Create a new SparseBooleanArray with only the true or false contents |
e256bd8628ba
Andrdoi: Attempt to fix a number of issues querying containers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2753
diff
changeset
|
5038 private fun onlyBooleanArray(array: SparseBooleanArray, bool: Boolean): SparseBooleanArray |
e256bd8628ba
Andrdoi: Attempt to fix a number of issues querying containers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2753
diff
changeset
|
5039 { |
e256bd8628ba
Andrdoi: Attempt to fix a number of issues querying containers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2753
diff
changeset
|
5040 val newArray = SparseBooleanArray() |
e256bd8628ba
Andrdoi: Attempt to fix a number of issues querying containers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2753
diff
changeset
|
5041 |
e256bd8628ba
Andrdoi: Attempt to fix a number of issues querying containers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2753
diff
changeset
|
5042 for (i in 0 until array.size()) { |
e256bd8628ba
Andrdoi: Attempt to fix a number of issues querying containers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2753
diff
changeset
|
5043 if (array.valueAt(i) == bool) { |
e256bd8628ba
Andrdoi: Attempt to fix a number of issues querying containers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2753
diff
changeset
|
5044 newArray.put(array.keyAt(i), bool) |
e256bd8628ba
Andrdoi: Attempt to fix a number of issues querying containers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2753
diff
changeset
|
5045 } |
e256bd8628ba
Andrdoi: Attempt to fix a number of issues querying containers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2753
diff
changeset
|
5046 } |
e256bd8628ba
Andrdoi: Attempt to fix a number of issues querying containers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2753
diff
changeset
|
5047 return newArray |
e256bd8628ba
Andrdoi: Attempt to fix a number of issues querying containers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2753
diff
changeset
|
5048 } |
e256bd8628ba
Andrdoi: Attempt to fix a number of issues querying containers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2753
diff
changeset
|
5049 |
2560
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5050 fun containerGetTitleStart(cont: ListView, flags: Int): String? |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5051 { |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5052 var retval: String? = null |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5053 |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5054 waitOnUiThread { |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5055 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5056 |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5057 // Handle DW_CRA_SELECTED |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5058 if((flags and 1) != 0) { |
2754
e256bd8628ba
Andrdoi: Attempt to fix a number of issues querying containers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2753
diff
changeset
|
5059 val checked: SparseBooleanArray = onlyBooleanArray(cont.checkedItemPositions, true) |
2755
9477910393ac
Android: Hopefully the final set of container query fixes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2754
diff
changeset
|
5060 |
9477910393ac
Android: Hopefully the final set of container query fixes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2754
diff
changeset
|
5061 if(checked.size() > 0) { |
9477910393ac
Android: Hopefully the final set of container query fixes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2754
diff
changeset
|
5062 val position = checked.keyAt(0) |
9477910393ac
Android: Hopefully the final set of container query fixes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2754
diff
changeset
|
5063 |
9477910393ac
Android: Hopefully the final set of container query fixes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2754
diff
changeset
|
5064 adapter.model.querypos = position |
9477910393ac
Android: Hopefully the final set of container query fixes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2754
diff
changeset
|
5065 retval = adapter.model.getRowTitle(position) |
9477910393ac
Android: Hopefully the final set of container query fixes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2754
diff
changeset
|
5066 } else { |
9477910393ac
Android: Hopefully the final set of container query fixes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2754
diff
changeset
|
5067 adapter.model.querypos = -1 |
9477910393ac
Android: Hopefully the final set of container query fixes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2754
diff
changeset
|
5068 } |
2560
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5069 } else { |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5070 if(adapter.model.rowdata.size == 0) { |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5071 adapter.model.querypos = -1 |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5072 } else { |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5073 retval = adapter.model.getRowTitle(0) |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5074 adapter.model.querypos = 0 |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5075 } |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5076 } |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5077 } |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5078 return retval |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5079 } |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5080 |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5081 fun containerGetTitleNext(cont: ListView, flags: Int): String? |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5082 { |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5083 var retval: String? = null |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5084 |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5085 waitOnUiThread { |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5086 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5087 |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5088 if(adapter.model.querypos != -1) { |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5089 // Handle DW_CRA_SELECTED |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5090 if ((flags and 1) != 0) { |
2754
e256bd8628ba
Andrdoi: Attempt to fix a number of issues querying containers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2753
diff
changeset
|
5091 val checked: SparseBooleanArray = onlyBooleanArray(cont.checkedItemPositions, true) |
2560
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5092 |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5093 // Otherwise loop until we find our current place |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5094 for (i in 0 until checked.size()) { |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5095 // Item position in adapter |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5096 val position: Int = checked.keyAt(i) |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5097 |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
5098 if (adapter.model.querypos == position && (i + 1) < checked.size()) { |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
5099 val newpos = checked.keyAt(i + 1) |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
5100 |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
5101 adapter.model.querypos = newpos |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
5102 retval = adapter.model.getRowTitle(newpos) |
2755
9477910393ac
Android: Hopefully the final set of container query fixes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2754
diff
changeset
|
5103 break |
2560
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5104 } |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5105 } |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5106 } else { |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5107 if (adapter.model.rowtitle.size > adapter.model.querypos) { |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5108 adapter.model.querypos += 1 |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5109 retval = adapter.model.getRowTitle(adapter.model.querypos) |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5110 } else { |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5111 adapter.model.querypos = -1 |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5112 } |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5113 } |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5114 } |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5115 } |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5116 return retval |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5117 } |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5118 |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5119 fun containerGetDataStart(cont: ListView, flags: Int): Long |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5120 { |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5121 var retval: Long = 0 |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5122 |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5123 waitOnUiThread { |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5124 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5125 |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5126 // Handle DW_CRA_SELECTED |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5127 if((flags and 1) != 0) { |
2754
e256bd8628ba
Andrdoi: Attempt to fix a number of issues querying containers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2753
diff
changeset
|
5128 val checked: SparseBooleanArray = onlyBooleanArray(cont.checkedItemPositions, true) |
2755
9477910393ac
Android: Hopefully the final set of container query fixes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2754
diff
changeset
|
5129 |
9477910393ac
Android: Hopefully the final set of container query fixes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2754
diff
changeset
|
5130 if(checked.size() > 0) { |
9477910393ac
Android: Hopefully the final set of container query fixes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2754
diff
changeset
|
5131 val position = checked.keyAt(0) |
9477910393ac
Android: Hopefully the final set of container query fixes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2754
diff
changeset
|
5132 |
9477910393ac
Android: Hopefully the final set of container query fixes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2754
diff
changeset
|
5133 adapter.model.querypos = position |
9477910393ac
Android: Hopefully the final set of container query fixes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2754
diff
changeset
|
5134 retval = adapter.model.getRowData(position) |
9477910393ac
Android: Hopefully the final set of container query fixes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2754
diff
changeset
|
5135 } else { |
9477910393ac
Android: Hopefully the final set of container query fixes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2754
diff
changeset
|
5136 adapter.model.querypos = -1 |
9477910393ac
Android: Hopefully the final set of container query fixes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2754
diff
changeset
|
5137 } |
2560
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5138 } else { |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5139 if(adapter.model.rowdata.size == 0) { |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5140 adapter.model.querypos = -1 |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5141 } else { |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5142 retval = adapter.model.getRowData(0) |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5143 adapter.model.querypos = 0 |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5144 } |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5145 } |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5146 } |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5147 return retval |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5148 } |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5149 |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5150 fun containerGetDataNext(cont: ListView, flags: Int): Long |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5151 { |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5152 var retval: Long = 0 |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5153 |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5154 waitOnUiThread { |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5155 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5156 |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5157 if(adapter.model.querypos != -1) { |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5158 // Handle DW_CRA_SELECTED |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5159 if ((flags and 1) != 0) { |
2754
e256bd8628ba
Andrdoi: Attempt to fix a number of issues querying containers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2753
diff
changeset
|
5160 val checked: SparseBooleanArray = onlyBooleanArray(cont.checkedItemPositions, true) |
2560
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5161 |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5162 // Otherwise loop until we find our current place |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5163 for (i in 0 until checked.size()) { |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5164 // Item position in adapter |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5165 val position: Int = checked.keyAt(i) |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5166 |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
5167 if (adapter.model.querypos == position && (i + 1) < checked.size()) { |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
5168 val newpos = checked.keyAt(i + 1) |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
5169 |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
5170 adapter.model.querypos = newpos |
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
5171 retval = adapter.model.getRowData(newpos) |
2755
9477910393ac
Android: Hopefully the final set of container query fixes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2754
diff
changeset
|
5172 break |
2560
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5173 } |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5174 } |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5175 } else { |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5176 if (adapter.model.rowdata.size > adapter.model.querypos) { |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5177 adapter.model.querypos += 1 |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5178 retval = adapter.model.getRowData(adapter.model.querypos) |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5179 } else { |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5180 adapter.model.querypos = -1 |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5181 } |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5182 } |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5183 } |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5184 } |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5185 return retval |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5186 } |
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
5187 |
2556
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5188 fun containerAddColumn(cont: ListView, title: String, flags: Int) |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5189 { |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5190 waitOnUiThread { |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5191 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5192 |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5193 adapter.model.addColumn(title, flags) |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5194 } |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5195 } |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5196 |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5197 fun containerAlloc(cont: ListView, rowcount: Int): ListView |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5198 { |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5199 waitOnUiThread { |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5200 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5201 val rowStart = adapter.model.addRows(rowcount) |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5202 |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5203 windowSetData(cont, "_dw_rowstart", rowStart) |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5204 } |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5205 return cont |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5206 } |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5207 |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5208 fun containerChangeItemString(cont: ListView, column: Int, row: Int, text: String) |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5209 { |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5210 waitOnUiThread { |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5211 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5212 |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5213 adapter.model.setRowAndColumn(row, column, text) |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5214 } |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5215 } |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5216 |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5217 fun containerChangeItemIcon(cont: ListView, column: Int, row: Int, icon: Drawable) |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5218 { |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5219 waitOnUiThread { |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5220 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5221 |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5222 adapter.model.setRowAndColumn(row, column, icon) |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5223 } |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5224 } |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5225 |
2833
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5226 fun containerChangeItemInt(cont: ListView, column: Int, row: Int, num: Long) |
2556
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5227 { |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5228 waitOnUiThread { |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5229 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5230 |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5231 adapter.model.setRowAndColumn(row, column, num) |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5232 } |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5233 } |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5234 |
2834
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
5235 fun timeString(num: Int, zeroAllowed: Boolean): String |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
5236 { |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
5237 if(zeroAllowed && num == 0) |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
5238 return "00" |
2833
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5239 if(num > 0 && num < 60) { |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5240 if(num > 9) |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5241 return num.toString() |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5242 else |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5243 return "0" + num.toString() |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5244 } |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5245 return "01" |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5246 } |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5247 |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5248 fun yearString(year: Int): String |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5249 { |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5250 if(year < 100) |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5251 { |
2834
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
5252 if(year > 69) |
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
5253 return "19" + timeString(year, false) |
2833
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5254 else |
2834
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
5255 return "20" + timeString(year, true) |
2833
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5256 } |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5257 if(year in 1901..2199) |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5258 return year.toString() |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5259 val calendar = Calendar.getInstance() |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5260 val thisyear = calendar[Calendar.YEAR] |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5261 return thisyear.toString() |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5262 } |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5263 |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5264 fun containerChangeItemDate(cont: ListView, column: Int, row: Int, year: Int, month: Int, day: Int) |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5265 { |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5266 waitOnUiThread { |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5267 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter |
2834
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
5268 val dateString = timeString(day, false) + "/" + timeString(month, false) + "/" + yearString(year) |
2833
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5269 val sdf = SimpleDateFormat("dd/MM/yyyy") |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5270 var date: Date? = null |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5271 var s = dateString |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5272 try { |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5273 date = sdf.parse(dateString) |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5274 val dateFormat = DateFormat.getDateFormat(this) |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5275 s = dateFormat.format(date) |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5276 } catch (e: ParseException) { |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5277 // handle exception here ! |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5278 } |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5279 adapter.model.setRowAndColumn(row, column, s) |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5280 } |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5281 } |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5282 |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5283 fun containerChangeItemTime(cont: ListView, column: Int, row: Int, hour: Int, minute: Int, second: Int) |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5284 { |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5285 waitOnUiThread { |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5286 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter |
2834
0cbe8201db3c
Android: Initial implementation of DW_CONTAINER_MODE_EXTRA/MULTI.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2833
diff
changeset
|
5287 val timeStr = timeString(hour, true) + ":" + timeString(minute, true) + ":" + timeString(second, true) |
2833
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5288 val sdf = SimpleDateFormat("hh:mm:ss") |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5289 var date: Date? = null |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5290 var s = timeStr |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5291 try { |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5292 date = sdf.parse(timeStr) |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5293 val timeFormat = DateFormat.getTimeFormat(this) |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5294 s = timeFormat.format(date) |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5295 } catch (e: ParseException) { |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5296 // handle exception here ! |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5297 } |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5298 adapter.model.setRowAndColumn(row, column, s) |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5299 } |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5300 } |
469e5748c8a5
Android: In preparation for the container mode changes... I needed to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2809
diff
changeset
|
5301 |
2558
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5302 fun containerChangeRowData(cont: ListView, row: Int, data: Long) |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5303 { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5304 waitOnUiThread { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5305 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5306 |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5307 adapter.model.changeRowData(row, data) |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5308 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5309 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5310 |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5311 fun containerChangeRowTitle(cont: ListView, row: Int, title: String?) |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5312 { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5313 waitOnUiThread { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5314 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5315 |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5316 adapter.model.changeRowTitle(row, title) |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5317 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5318 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5319 |
2561
f28d7d0ca5ed
Android: Attempt at implementing updating the container after insertion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2560
diff
changeset
|
5320 fun containerRefresh(cont: ListView) |
f28d7d0ca5ed
Android: Attempt at implementing updating the container after insertion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2560
diff
changeset
|
5321 { |
f28d7d0ca5ed
Android: Attempt at implementing updating the container after insertion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2560
diff
changeset
|
5322 waitOnUiThread { |
f28d7d0ca5ed
Android: Attempt at implementing updating the container after insertion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2560
diff
changeset
|
5323 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter |
f28d7d0ca5ed
Android: Attempt at implementing updating the container after insertion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2560
diff
changeset
|
5324 |
f28d7d0ca5ed
Android: Attempt at implementing updating the container after insertion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2560
diff
changeset
|
5325 adapter.notifyDataSetChanged() |
f28d7d0ca5ed
Android: Attempt at implementing updating the container after insertion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2560
diff
changeset
|
5326 } |
f28d7d0ca5ed
Android: Attempt at implementing updating the container after insertion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2560
diff
changeset
|
5327 } |
f28d7d0ca5ed
Android: Attempt at implementing updating the container after insertion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2560
diff
changeset
|
5328 |
2556
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5329 fun containerGetColumnType(cont: ListView, column: Int): Int |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5330 { |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
5331 var type = 0 |
2556
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5332 |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5333 waitOnUiThread { |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5334 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5335 |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5336 type = adapter.model.getColumnType(column) |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5337 } |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5338 return type |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5339 } |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5340 |
2558
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5341 fun containerDelete(cont: ListView, rowcount: Int) |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5342 { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5343 waitOnUiThread { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5344 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5345 |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5346 adapter.model.deleteRows(rowcount) |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5347 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5348 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5349 |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5350 fun containerRowDeleteByTitle(cont: ListView, title: String?) |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5351 { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5352 waitOnUiThread { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5353 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5354 |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5355 adapter.model.deleteRowByTitle(title) |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5356 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5357 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5358 |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5359 fun containerRowDeleteByData(cont: ListView, data: Long) |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5360 { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5361 waitOnUiThread { |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5362 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5363 |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5364 adapter.model.deleteRowByData(data) |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5365 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5366 } |
ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2557
diff
changeset
|
5367 |
2556
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5368 fun containerClear(cont: ListView) |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5369 { |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5370 waitOnUiThread { |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5371 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5372 |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5373 adapter.model.clear() |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5374 } |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5375 } |
d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2555
diff
changeset
|
5376 |
2709
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5377 fun containerScroll(cont: ListView, direction: Int, rows: Int) |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5378 { |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5379 waitOnUiThread { |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5380 // DW_SCROLL_UP 0 |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5381 if(direction == 0) { |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5382 cont.smoothScrollByOffset(-rows) |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5383 // DW_SCROLL_DOWN 1 |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5384 } else if(direction == 1) { |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5385 cont.smoothScrollByOffset(rows) |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5386 // DW_SCROLL_TOP 2 |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5387 } else if(direction == 2) { |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5388 cont.setSelection(0) |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5389 cont.smoothScrollToPosition(0) |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5390 // DW_SCROLL_BOTTOM 3 |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5391 } else if(direction == 3) { |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5392 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5393 val pos = adapter.model.rowdata.size |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5394 |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5395 if(pos > 0) { |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5396 cont.setSelection(pos - 1) |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5397 cont.smoothScrollToPosition(pos - 1) |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5398 } |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5399 } |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5400 } |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5401 } |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5402 |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5403 fun containerCursor(cont: ListView, title: String?) |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5404 { |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5405 waitOnUiThread { |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5406 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5407 val pos = adapter.model.positionByTitle(title) |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5408 |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5409 if(pos > -1) { |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5410 cont.setSelection(pos) |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5411 cont.smoothScrollToPosition(pos) |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5412 } |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5413 |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5414 } |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5415 } |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5416 |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5417 fun containerCursorByData(cont: ListView, rdata: Long) |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5418 { |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5419 waitOnUiThread { |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5420 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5421 val pos = adapter.model.positionByData(rdata) |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5422 |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5423 if(pos > -1) { |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5424 cont.setSelection(pos) |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5425 cont.smoothScrollToPosition(pos) |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5426 } |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5427 |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5428 } |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5429 } |
3cb5aa73dace
Android: Implement dw_container_scroll(), dw_container_cursor() and dw_container_cursor_by_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2708
diff
changeset
|
5430 |
2519
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5431 fun listBoxNew(cid: Int, multi: Int): DWListBox? |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5432 { |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5433 var listbox: DWListBox? = null |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5434 |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5435 waitOnUiThread { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
5436 val dataArrayMap = SimpleArrayMap<String, Long>() |
2519
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5437 |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5438 listbox = DWListBox(this) |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5439 listbox!!.tag = dataArrayMap |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5440 listbox!!.id = cid |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5441 if(multi != 0) { |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
5442 listbox!!.choiceMode = ListView.CHOICE_MODE_MULTIPLE |
2519
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5443 } |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5444 } |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5445 return listbox |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5446 } |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5447 |
2515
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
5448 fun listOrComboBoxAppend(window: View, text: String) |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
5449 { |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
5450 waitOnUiThread { |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
5451 if(window is DWComboBox) { |
2517
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5452 val combobox = window |
2515
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
5453 |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
5454 combobox.list.add(text) |
2519
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5455 } else if(window is DWListBox) { |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5456 val listbox = window |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5457 |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5458 listbox.list.add(text) |
2753
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
5459 listbox.multiple.clear() |
2690
755d9ad07aaf
Android: Fix state exception by calling notifyDataSetChanged() on DWListBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2689
diff
changeset
|
5460 val adapter = listbox.adapter as ArrayAdapter<String> |
755d9ad07aaf
Android: Fix state exception by calling notifyDataSetChanged() on DWListBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2689
diff
changeset
|
5461 adapter.notifyDataSetChanged() |
2515
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
5462 } |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
5463 } |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
5464 } |
211044d98e86
Android: Initial attempt at our own ComboBox class, EditText with PopupList.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2514
diff
changeset
|
5465 |
2517
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5466 fun listOrComboBoxInsert(window: View, text: String, pos: Int) |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5467 { |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5468 waitOnUiThread { |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5469 if(window is DWComboBox) { |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5470 val combobox = window |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5471 |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5472 combobox.list.add(pos, text) |
2519
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5473 } else if(window is DWListBox) { |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5474 val listbox = window |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5475 |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5476 listbox.list.add(pos, text) |
2753
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
5477 listbox.multiple.clear() |
2690
755d9ad07aaf
Android: Fix state exception by calling notifyDataSetChanged() on DWListBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2689
diff
changeset
|
5478 val adapter = listbox.adapter as ArrayAdapter<String> |
755d9ad07aaf
Android: Fix state exception by calling notifyDataSetChanged() on DWListBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2689
diff
changeset
|
5479 adapter.notifyDataSetChanged() |
2517
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5480 } |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5481 } |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5482 } |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5483 |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5484 fun listOrComboBoxClear(window: View) |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5485 { |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5486 waitOnUiThread { |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5487 if(window is DWComboBox) { |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5488 val combobox = window |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5489 |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5490 combobox.list.clear() |
2519
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5491 } else if(window is DWListBox) { |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5492 val listbox = window |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5493 |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5494 listbox.list.clear() |
2753
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
5495 listbox.multiple.clear() |
2690
755d9ad07aaf
Android: Fix state exception by calling notifyDataSetChanged() on DWListBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2689
diff
changeset
|
5496 val adapter = listbox.adapter as ArrayAdapter<String> |
755d9ad07aaf
Android: Fix state exception by calling notifyDataSetChanged() on DWListBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2689
diff
changeset
|
5497 adapter.notifyDataSetChanged() |
2517
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5498 } |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5499 } |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5500 } |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5501 |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5502 fun listOrComboBoxCount(window: View): Int |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5503 { |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
5504 var retval = 0 |
2517
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5505 |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5506 waitOnUiThread { |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5507 if(window is DWComboBox) { |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5508 val combobox = window |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5509 |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5510 retval = combobox.list.count() |
2519
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5511 } else if(window is DWListBox) { |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5512 val listbox = window |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5513 |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5514 retval = listbox.list.count() |
2517
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5515 } |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5516 } |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5517 return retval |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5518 } |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5519 |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5520 fun listOrComboBoxSetText(window: View, index: Int, text: String) |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5521 { |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5522 waitOnUiThread { |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5523 if(window is DWComboBox) { |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5524 val combobox = window |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5525 |
2521
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
5526 if(index > -1 && index < combobox.list.count()) |
2517
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5527 combobox.list[index] = text |
2519
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5528 } else if(window is DWListBox) { |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5529 val listbox = window |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5530 |
2690
755d9ad07aaf
Android: Fix state exception by calling notifyDataSetChanged() on DWListBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2689
diff
changeset
|
5531 if(index > -1 && index < listbox.list.count()) { |
2519
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5532 listbox.list[index] = text |
2690
755d9ad07aaf
Android: Fix state exception by calling notifyDataSetChanged() on DWListBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2689
diff
changeset
|
5533 val adapter = listbox.adapter as ArrayAdapter<String> |
755d9ad07aaf
Android: Fix state exception by calling notifyDataSetChanged() on DWListBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2689
diff
changeset
|
5534 adapter.notifyDataSetChanged() |
755d9ad07aaf
Android: Fix state exception by calling notifyDataSetChanged() on DWListBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2689
diff
changeset
|
5535 } |
2517
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5536 } |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5537 } |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5538 } |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5539 |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5540 fun listOrComboBoxGetText(window: View, index: Int): String? |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5541 { |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5542 var retval: String? = null |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5543 |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5544 waitOnUiThread { |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5545 if(window is DWComboBox) { |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5546 val combobox = window |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5547 |
2521
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
5548 if(index > -1 && index < combobox.list.count()) |
2517
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5549 retval = combobox.list[index] |
2519
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5550 } else if(window is DWListBox) { |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5551 val listbox = window |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5552 |
2521
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
5553 if(index > -1 && index < listbox.list.count()) |
2519
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5554 retval = listbox.list[index] |
2517
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5555 } |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5556 } |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5557 return retval |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5558 } |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5559 |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5560 fun listOrComboBoxGetSelected(window: View): Int |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5561 { |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5562 var retval: Int = -1 |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5563 |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5564 waitOnUiThread { |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5565 if(window is DWComboBox) { |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5566 val combobox = window |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5567 |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5568 retval = combobox.selected |
2519
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5569 } else if(window is DWListBox) { |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5570 val listbox = window |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5571 |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5572 retval = listbox.selected |
2517
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5573 } |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5574 } |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5575 return retval |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5576 } |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5577 |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5578 fun listOrComboBoxSelect(window: View, index: Int, state: Int) |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5579 { |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5580 waitOnUiThread { |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5581 if(window is DWComboBox) { |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5582 val combobox = window |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5583 |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5584 if(index < combobox.list.count() && state != 0) { |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5585 combobox.selected = index |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5586 combobox.setText(combobox.list[index]) |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5587 } |
2519
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5588 } else if(window is DWListBox) { |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5589 val listbox = window |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5590 |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5591 if(index < listbox.list.count()) { |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5592 if(state != 0) { |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5593 listbox.selected = index |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
5594 listbox.setItemChecked(index, true) |
2519
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5595 } else { |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
5596 listbox.setItemChecked(index, false) |
2519
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5597 } |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5598 } |
2517
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5599 } |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5600 } |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5601 } |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5602 |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5603 fun listOrComboBoxDelete(window: View, index: Int) |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5604 { |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5605 waitOnUiThread { |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5606 if(window is DWComboBox) { |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5607 val combobox = window |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5608 |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5609 if(index < combobox.list.count()) { |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5610 combobox.list.removeAt(index) |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5611 } |
2519
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5612 } else if(window is DWListBox) { |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5613 val listbox = window |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5614 |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5615 if(index < listbox.list.count()) { |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5616 listbox.list.removeAt(index) |
2753
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
5617 listbox.multiple.clear() |
2690
755d9ad07aaf
Android: Fix state exception by calling notifyDataSetChanged() on DWListBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2689
diff
changeset
|
5618 val adapter = listbox.adapter as ArrayAdapter<String> |
755d9ad07aaf
Android: Fix state exception by calling notifyDataSetChanged() on DWListBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2689
diff
changeset
|
5619 adapter.notifyDataSetChanged() |
2519
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5620 } |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5621 } |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5622 } |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5623 } |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5624 |
2521
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
5625 fun listBoxSetTop(window: View, top: Int) |
2519
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5626 { |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5627 waitOnUiThread { |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5628 if(window is DWListBox) { |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5629 val listbox = window |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5630 |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5631 if(top < listbox.list.count()) { |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5632 listbox.smoothScrollToPosition(top) |
551313c064f2
Android: Implement ListBox with ListView and fill in the missing listbox functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2517
diff
changeset
|
5633 } |
2517
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5634 } |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5635 } |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5636 } |
d746323f2841
Android: Implement most of the dw_listbox_*() functions for ComboBoxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2516
diff
changeset
|
5637 |
2521
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
5638 fun listBoxSelectedMulti(window: View, where: Int): Int |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
5639 { |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
5640 var retval: Int = -1 |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
5641 |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
5642 waitOnUiThread { |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
5643 if(window is DWListBox) { |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
5644 val listbox = window |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
5645 |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
5646 // If we are starting over.... |
2753
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
5647 if(where == -1 && listbox.multiple.count() > 0) { |
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
5648 retval = listbox.multiple[0] |
2521
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
5649 } else { |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
5650 // Otherwise loop until we find our current place |
2753
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
5651 for (i in 0 until listbox.multiple.count()) { |
2521
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
5652 // Item position in adapter |
2753
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
5653 val position: Int = listbox.multiple[i] |
2521
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
5654 // If we are at our current point... check to see |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
5655 // if there is another one, and return it... |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
5656 // otherwise we will return -1 to indicated we are done. |
2753
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
5657 if (where == position && (i+1) < listbox.multiple.count()) { |
2ac361d3a837
Android: Rewrite listbox multiple selection... keep track of the selection
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2752
diff
changeset
|
5658 retval = listbox.multiple[i+1] |
2521
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
5659 } |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
5660 } |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
5661 } |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
5662 } |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
5663 } |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
5664 return retval |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
5665 } |
5f92284e2b08
Android: Implement bitmap buttons, implement dw_listbox_selected_multi().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2520
diff
changeset
|
5666 |
2523
82cdb3ad7c25
Android: Implement the calendar widget using CalendarView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2522
diff
changeset
|
5667 fun calendarNew(cid: Int): CalendarView? |
82cdb3ad7c25
Android: Implement the calendar widget using CalendarView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2522
diff
changeset
|
5668 { |
82cdb3ad7c25
Android: Implement the calendar widget using CalendarView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2522
diff
changeset
|
5669 var calendar: CalendarView? = null |
82cdb3ad7c25
Android: Implement the calendar widget using CalendarView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2522
diff
changeset
|
5670 |
82cdb3ad7c25
Android: Implement the calendar widget using CalendarView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2522
diff
changeset
|
5671 waitOnUiThread { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
5672 val dataArrayMap = SimpleArrayMap<String, Long>() |
2528
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5673 |
2523
82cdb3ad7c25
Android: Implement the calendar widget using CalendarView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2522
diff
changeset
|
5674 calendar = CalendarView(this) |
2528
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5675 calendar!!.tag = dataArrayMap |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5676 calendar!!.id = cid |
2524
d5c3c573c74e
Android: Calendar fixes, need to be in milliseconds not seconds... also...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2523
diff
changeset
|
5677 calendar!!.setOnDateChangeListener { calendar, year, month, day -> |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
5678 val c: Calendar = Calendar.getInstance() |
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
5679 c.set(year, month, day) |
2524
d5c3c573c74e
Android: Calendar fixes, need to be in milliseconds not seconds... also...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2523
diff
changeset
|
5680 calendar.date = c.timeInMillis |
d5c3c573c74e
Android: Calendar fixes, need to be in milliseconds not seconds... also...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2523
diff
changeset
|
5681 } |
2523
82cdb3ad7c25
Android: Implement the calendar widget using CalendarView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2522
diff
changeset
|
5682 } |
82cdb3ad7c25
Android: Implement the calendar widget using CalendarView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2522
diff
changeset
|
5683 |
82cdb3ad7c25
Android: Implement the calendar widget using CalendarView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2522
diff
changeset
|
5684 return calendar |
82cdb3ad7c25
Android: Implement the calendar widget using CalendarView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2522
diff
changeset
|
5685 } |
82cdb3ad7c25
Android: Implement the calendar widget using CalendarView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2522
diff
changeset
|
5686 |
82cdb3ad7c25
Android: Implement the calendar widget using CalendarView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2522
diff
changeset
|
5687 fun calendarSetDate(calendar: CalendarView, date: Long) |
82cdb3ad7c25
Android: Implement the calendar widget using CalendarView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2522
diff
changeset
|
5688 { |
82cdb3ad7c25
Android: Implement the calendar widget using CalendarView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2522
diff
changeset
|
5689 waitOnUiThread { |
2524
d5c3c573c74e
Android: Calendar fixes, need to be in milliseconds not seconds... also...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2523
diff
changeset
|
5690 // Convert from seconds to milliseconds |
d5c3c573c74e
Android: Calendar fixes, need to be in milliseconds not seconds... also...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2523
diff
changeset
|
5691 calendar.setDate(date * 1000, true, true) |
2523
82cdb3ad7c25
Android: Implement the calendar widget using CalendarView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2522
diff
changeset
|
5692 } |
82cdb3ad7c25
Android: Implement the calendar widget using CalendarView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2522
diff
changeset
|
5693 } |
82cdb3ad7c25
Android: Implement the calendar widget using CalendarView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2522
diff
changeset
|
5694 |
82cdb3ad7c25
Android: Implement the calendar widget using CalendarView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2522
diff
changeset
|
5695 fun calendarGetDate(calendar: CalendarView): Long |
82cdb3ad7c25
Android: Implement the calendar widget using CalendarView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2522
diff
changeset
|
5696 { |
82cdb3ad7c25
Android: Implement the calendar widget using CalendarView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2522
diff
changeset
|
5697 var date: Long = 0 |
82cdb3ad7c25
Android: Implement the calendar widget using CalendarView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2522
diff
changeset
|
5698 |
82cdb3ad7c25
Android: Implement the calendar widget using CalendarView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2522
diff
changeset
|
5699 waitOnUiThread { |
2524
d5c3c573c74e
Android: Calendar fixes, need to be in milliseconds not seconds... also...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2523
diff
changeset
|
5700 // Convert from milliseconds to seconds |
d5c3c573c74e
Android: Calendar fixes, need to be in milliseconds not seconds... also...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2523
diff
changeset
|
5701 date = calendar.date / 1000 |
2523
82cdb3ad7c25
Android: Implement the calendar widget using CalendarView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2522
diff
changeset
|
5702 } |
82cdb3ad7c25
Android: Implement the calendar widget using CalendarView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2522
diff
changeset
|
5703 return date |
82cdb3ad7c25
Android: Implement the calendar widget using CalendarView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2522
diff
changeset
|
5704 } |
82cdb3ad7c25
Android: Implement the calendar widget using CalendarView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2522
diff
changeset
|
5705 |
2528
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5706 fun bitmapNew(cid: Int): ImageView? |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5707 { |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5708 var imageview: ImageView? = null |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5709 |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5710 waitOnUiThread { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
5711 val dataArrayMap = SimpleArrayMap<String, Long>() |
2528
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5712 |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5713 imageview = ImageView(this) |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5714 imageview!!.tag = dataArrayMap |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5715 imageview!!.id = cid |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5716 } |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5717 |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5718 return imageview |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5719 } |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5720 |
2654
fe186c9318cc
Android: More resource changes, for windowSetBitmap and pixmapNew.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2653
diff
changeset
|
5721 fun windowSetBitmap(window: View, resID: Int, file: String?) |
2528
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5722 { |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5723 waitOnUiThread { |
2654
fe186c9318cc
Android: More resource changes, for windowSetBitmap and pixmapNew.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2653
diff
changeset
|
5724 var filename: String? = file |
fe186c9318cc
Android: More resource changes, for windowSetBitmap and pixmapNew.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2653
diff
changeset
|
5725 |
fe186c9318cc
Android: More resource changes, for windowSetBitmap and pixmapNew.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2653
diff
changeset
|
5726 if(resID > 0 && resID < 65536) { |
fe186c9318cc
Android: More resource changes, for windowSetBitmap and pixmapNew.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2653
diff
changeset
|
5727 filename = resID.toString() |
fe186c9318cc
Android: More resource changes, for windowSetBitmap and pixmapNew.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2653
diff
changeset
|
5728 } else if(resID != 0) { |
fe186c9318cc
Android: More resource changes, for windowSetBitmap and pixmapNew.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2653
diff
changeset
|
5729 if (window is ImageButton) { |
2528
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5730 val button = window |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5731 |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5732 button.setImageResource(resID) |
2654
fe186c9318cc
Android: More resource changes, for windowSetBitmap and pixmapNew.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2653
diff
changeset
|
5733 } else if (window is ImageView) { |
2528
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5734 val imageview = window |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5735 |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5736 imageview.setImageResource(resID) |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5737 } |
2654
fe186c9318cc
Android: More resource changes, for windowSetBitmap and pixmapNew.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2653
diff
changeset
|
5738 } |
fe186c9318cc
Android: More resource changes, for windowSetBitmap and pixmapNew.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2653
diff
changeset
|
5739 if(filename != null) { |
2658
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
5740 for (ext in DWImageExts) { |
2564
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5741 // Try to load the image, and protect against exceptions |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5742 try { |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5743 val f = this.assets.open(filename + ext) |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5744 val b = BitmapFactory.decodeStream(f) |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5745 |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5746 if(b != null) { |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5747 if (window is ImageButton) { |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5748 val button = window |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5749 |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5750 button.setImageBitmap(b) |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5751 } else if (window is ImageView) { |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5752 val imageview = window |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5753 |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5754 imageview.setImageBitmap(b) |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5755 } |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5756 break |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5757 } |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5758 } catch (e: IOException) { |
2528
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5759 } |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5760 } |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5761 } |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5762 } |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5763 } |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5764 |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5765 fun windowSetBitmapFromData(window: View, resID: Int, data: ByteArray?, length: Int) |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5766 { |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5767 waitOnUiThread { |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5768 if(resID != 0) { |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5769 if (window is ImageButton) { |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5770 val button = window |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5771 |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5772 button.setImageResource(resID) |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5773 } else if (window is ImageView) { |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5774 val imageview = window |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5775 |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5776 imageview.setImageResource(resID) |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5777 } |
2655
5b63a3ed8e10
Android: Code path cleanup, basically only try one image load... the only
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2654
diff
changeset
|
5778 } |
5b63a3ed8e10
Android: Code path cleanup, basically only try one image load... the only
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2654
diff
changeset
|
5779 if(data != null) { |
2528
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5780 val b = BitmapFactory.decodeByteArray(data, 0, length) |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5781 |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5782 if (window is ImageButton) { |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5783 val button = window |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5784 |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5785 button.setImageBitmap(b) |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5786 } else if (window is ImageView) { |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5787 val imageview = window |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5788 |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5789 imageview.setImageBitmap(b) |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5790 } |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5791 } |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5792 } |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5793 } |
03f6870bcfcc
Android: Implement dw_bitmap_new(), dw_dwindow_set_bitmap() and dw_window_set_bitmap_from_data().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2527
diff
changeset
|
5794 |
2652
42151fd096d4
Android: Switch to loading resource images like we do on iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2651
diff
changeset
|
5795 fun iconNew(file: String?, data: ByteArray?, length: Int, resID: Int): Drawable? |
2530
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
5796 { |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
5797 var icon: Drawable? = null |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
5798 |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
5799 waitOnUiThread { |
2655
5b63a3ed8e10
Android: Code path cleanup, basically only try one image load... the only
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2654
diff
changeset
|
5800 var filename: String? = null |
2652
42151fd096d4
Android: Switch to loading resource images like we do on iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2651
diff
changeset
|
5801 |
42151fd096d4
Android: Switch to loading resource images like we do on iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2651
diff
changeset
|
5802 // Handle Dynamic Windows resource IDs |
42151fd096d4
Android: Switch to loading resource images like we do on iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2651
diff
changeset
|
5803 if(resID > 0 && resID < 65536) { |
42151fd096d4
Android: Switch to loading resource images like we do on iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2651
diff
changeset
|
5804 filename = resID.toString() |
2655
5b63a3ed8e10
Android: Code path cleanup, basically only try one image load... the only
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2654
diff
changeset
|
5805 // Handle Android resource IDs |
5b63a3ed8e10
Android: Code path cleanup, basically only try one image load... the only
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2654
diff
changeset
|
5806 } else if(resID != 0) { |
5b63a3ed8e10
Android: Code path cleanup, basically only try one image load... the only
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2654
diff
changeset
|
5807 try { |
5b63a3ed8e10
Android: Code path cleanup, basically only try one image load... the only
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2654
diff
changeset
|
5808 icon = ResourcesCompat.getDrawable(resources, resID, null) |
5b63a3ed8e10
Android: Code path cleanup, basically only try one image load... the only
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2654
diff
changeset
|
5809 } catch (e: Resources.NotFoundException) { |
5b63a3ed8e10
Android: Code path cleanup, basically only try one image load... the only
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2654
diff
changeset
|
5810 } |
5b63a3ed8e10
Android: Code path cleanup, basically only try one image load... the only
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2654
diff
changeset
|
5811 // Handle bitmap data |
5b63a3ed8e10
Android: Code path cleanup, basically only try one image load... the only
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2654
diff
changeset
|
5812 } else if(data != null) { |
5b63a3ed8e10
Android: Code path cleanup, basically only try one image load... the only
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2654
diff
changeset
|
5813 icon = BitmapDrawable(resources, BitmapFactory.decodeByteArray(data, 0, length)) |
5b63a3ed8e10
Android: Code path cleanup, basically only try one image load... the only
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2654
diff
changeset
|
5814 } else { |
5b63a3ed8e10
Android: Code path cleanup, basically only try one image load... the only
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2654
diff
changeset
|
5815 filename = file |
2652
42151fd096d4
Android: Switch to loading resource images like we do on iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2651
diff
changeset
|
5816 } |
42151fd096d4
Android: Switch to loading resource images like we do on iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2651
diff
changeset
|
5817 // Handle filename or DW resource IDs |
42151fd096d4
Android: Switch to loading resource images like we do on iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2651
diff
changeset
|
5818 // these will be located in the assets folder |
42151fd096d4
Android: Switch to loading resource images like we do on iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2651
diff
changeset
|
5819 if(filename != null) { |
2658
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
5820 for (ext in DWImageExts) { |
2564
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5821 // Try to load the image, and protect against exceptions |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5822 try { |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5823 val f = this.assets.open(filename + ext) |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5824 icon = Drawable.createFromStream(f, null) |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5825 } catch (e: IOException) { |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5826 } |
2652
42151fd096d4
Android: Switch to loading resource images like we do on iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2651
diff
changeset
|
5827 if (icon != null) { |
2564
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5828 break |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5829 } |
2530
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
5830 } |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
5831 } |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
5832 } |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
5833 return icon |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
5834 } |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
5835 |
2654
fe186c9318cc
Android: More resource changes, for windowSetBitmap and pixmapNew.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2653
diff
changeset
|
5836 fun pixmapNew(width: Int, height: Int, file: String?, data: ByteArray?, length: Int, resID: Int): Bitmap? |
2529
060fdb2d807d
Android: Initial pixmap implmentation using Android Bitmap.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2528
diff
changeset
|
5837 { |
060fdb2d807d
Android: Initial pixmap implmentation using Android Bitmap.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2528
diff
changeset
|
5838 var pixmap: Bitmap? = null |
060fdb2d807d
Android: Initial pixmap implmentation using Android Bitmap.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2528
diff
changeset
|
5839 |
060fdb2d807d
Android: Initial pixmap implmentation using Android Bitmap.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2528
diff
changeset
|
5840 waitOnUiThread { |
2655
5b63a3ed8e10
Android: Code path cleanup, basically only try one image load... the only
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2654
diff
changeset
|
5841 var filename: String? = null |
2654
fe186c9318cc
Android: More resource changes, for windowSetBitmap and pixmapNew.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2653
diff
changeset
|
5842 |
2529
060fdb2d807d
Android: Initial pixmap implmentation using Android Bitmap.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2528
diff
changeset
|
5843 if(width > 0 && height > 0) { |
060fdb2d807d
Android: Initial pixmap implmentation using Android Bitmap.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2528
diff
changeset
|
5844 pixmap = Bitmap.createBitmap(null, width, height, Bitmap.Config.ARGB_8888) |
2654
fe186c9318cc
Android: More resource changes, for windowSetBitmap and pixmapNew.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2653
diff
changeset
|
5845 } else if(resID > 0 && resID < 65536) { |
fe186c9318cc
Android: More resource changes, for windowSetBitmap and pixmapNew.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2653
diff
changeset
|
5846 filename = resID.toString() |
2529
060fdb2d807d
Android: Initial pixmap implmentation using Android Bitmap.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2528
diff
changeset
|
5847 } else if(resID != 0) { |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
5848 pixmap = BitmapFactory.decodeResource(resources, resID) |
2655
5b63a3ed8e10
Android: Code path cleanup, basically only try one image load... the only
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2654
diff
changeset
|
5849 } else if(data != null) { |
5b63a3ed8e10
Android: Code path cleanup, basically only try one image load... the only
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2654
diff
changeset
|
5850 pixmap = BitmapFactory.decodeByteArray(data, 0, length) |
5b63a3ed8e10
Android: Code path cleanup, basically only try one image load... the only
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2654
diff
changeset
|
5851 } else { |
5b63a3ed8e10
Android: Code path cleanup, basically only try one image load... the only
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2654
diff
changeset
|
5852 filename = file |
2654
fe186c9318cc
Android: More resource changes, for windowSetBitmap and pixmapNew.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2653
diff
changeset
|
5853 } |
fe186c9318cc
Android: More resource changes, for windowSetBitmap and pixmapNew.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2653
diff
changeset
|
5854 if(filename != null) { |
2658
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
5855 for (ext in DWImageExts) { |
2564
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5856 // Try to load the image, and protect against exceptions |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5857 try { |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5858 val f = this.assets.open(filename + ext) |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5859 pixmap = BitmapFactory.decodeStream(f) |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5860 } catch (e: IOException) { |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5861 } |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5862 if(pixmap != null) { |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5863 break |
607acfe2c504
Android: The *_from_file() functions now check the assets folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2563
diff
changeset
|
5864 } |
2529
060fdb2d807d
Android: Initial pixmap implmentation using Android Bitmap.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2528
diff
changeset
|
5865 } |
060fdb2d807d
Android: Initial pixmap implmentation using Android Bitmap.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2528
diff
changeset
|
5866 } |
060fdb2d807d
Android: Initial pixmap implmentation using Android Bitmap.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2528
diff
changeset
|
5867 } |
060fdb2d807d
Android: Initial pixmap implmentation using Android Bitmap.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2528
diff
changeset
|
5868 return pixmap |
060fdb2d807d
Android: Initial pixmap implmentation using Android Bitmap.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2528
diff
changeset
|
5869 } |
060fdb2d807d
Android: Initial pixmap implmentation using Android Bitmap.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2528
diff
changeset
|
5870 |
2727
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5871 fun printRun(print: Long, flags: Int, jobname: String, pages: Int, runflags: Int): PrintJob? |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5872 { |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5873 var retval: PrintJob? = null |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5874 |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5875 waitOnUiThread { |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5876 // Get a PrintManager instance |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5877 val printManager = this.getSystemService(Context.PRINT_SERVICE) as PrintManager |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5878 // Setup our print adapter |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5879 val printAdapter = DWPrintDocumentAdapter() |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5880 printAdapter.context = this |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5881 printAdapter.pages = pages |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5882 printAdapter.print = print |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5883 // Start a print job, passing in a PrintDocumentAdapter implementation |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5884 // to handle the generation of a print document |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5885 retval = printManager.print(jobname, printAdapter, null) |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5886 } |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5887 return retval |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5888 } |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5889 |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5890 fun printCancel(printjob: PrintJob) |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5891 { |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5892 waitOnUiThread { |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5893 // Get a PrintManager instance |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5894 val printManager = this.getSystemService(Context.PRINT_SERVICE) as PrintManager |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5895 // Remove the job we earlier added from the queue |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5896 printManager.printJobs.remove(printjob) |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5897 } |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5898 } |
bf585f375286
Android: Initial print implementation for Android....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2722
diff
changeset
|
5899 |
2529
060fdb2d807d
Android: Initial pixmap implmentation using Android Bitmap.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2528
diff
changeset
|
5900 fun pixmapGetDimensions(pixmap: Bitmap): Long |
060fdb2d807d
Android: Initial pixmap implmentation using Android Bitmap.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2528
diff
changeset
|
5901 { |
060fdb2d807d
Android: Initial pixmap implmentation using Android Bitmap.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2528
diff
changeset
|
5902 var dimensions: Long = 0 |
060fdb2d807d
Android: Initial pixmap implmentation using Android Bitmap.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2528
diff
changeset
|
5903 |
060fdb2d807d
Android: Initial pixmap implmentation using Android Bitmap.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2528
diff
changeset
|
5904 waitOnUiThread { |
060fdb2d807d
Android: Initial pixmap implmentation using Android Bitmap.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2528
diff
changeset
|
5905 dimensions = pixmap.width.toLong() or (pixmap.height.toLong() shl 32) |
060fdb2d807d
Android: Initial pixmap implmentation using Android Bitmap.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2528
diff
changeset
|
5906 } |
060fdb2d807d
Android: Initial pixmap implmentation using Android Bitmap.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2528
diff
changeset
|
5907 return dimensions |
060fdb2d807d
Android: Initial pixmap implmentation using Android Bitmap.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2528
diff
changeset
|
5908 } |
060fdb2d807d
Android: Initial pixmap implmentation using Android Bitmap.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2528
diff
changeset
|
5909 |
2542
bb75e64e6138
Android: Implement dw_screen_* and dw_environment_query().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2539
diff
changeset
|
5910 fun screenGetDimensions(): Long |
bb75e64e6138
Android: Implement dw_screen_* and dw_environment_query().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2539
diff
changeset
|
5911 { |
bb75e64e6138
Android: Implement dw_screen_* and dw_environment_query().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2539
diff
changeset
|
5912 val dm = resources.displayMetrics |
bb75e64e6138
Android: Implement dw_screen_* and dw_environment_query().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2539
diff
changeset
|
5913 return dm.widthPixels.toLong() or (dm.heightPixels.toLong() shl 32) |
bb75e64e6138
Android: Implement dw_screen_* and dw_environment_query().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2539
diff
changeset
|
5914 } |
bb75e64e6138
Android: Implement dw_screen_* and dw_environment_query().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2539
diff
changeset
|
5915 |
2530
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
5916 fun renderNew(cid: Int): DWRender? |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
5917 { |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
5918 var render: DWRender? = null |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
5919 |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
5920 waitOnUiThread { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
5921 val dataArrayMap = SimpleArrayMap<String, Long>() |
2530
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
5922 |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
5923 render = DWRender(this) |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
5924 render!!.tag = dataArrayMap |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
5925 render!!.id = cid |
2608
a11522c30345
Android: Add initial code to handle button presses and long clicks on DWRender.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2607
diff
changeset
|
5926 render!!.setOnTouchListener(object : View.OnTouchListener { |
a11522c30345
Android: Add initial code to handle button presses and long clicks on DWRender.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2607
diff
changeset
|
5927 @SuppressLint("ClickableViewAccessibility") |
a11522c30345
Android: Add initial code to handle button presses and long clicks on DWRender.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2607
diff
changeset
|
5928 override fun onTouch(v: View, event: MotionEvent): Boolean { |
a11522c30345
Android: Add initial code to handle button presses and long clicks on DWRender.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2607
diff
changeset
|
5929 when (event.action) { |
a11522c30345
Android: Add initial code to handle button presses and long clicks on DWRender.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2607
diff
changeset
|
5930 MotionEvent.ACTION_DOWN -> { |
a11522c30345
Android: Add initial code to handle button presses and long clicks on DWRender.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2607
diff
changeset
|
5931 render!!.evx = event.x |
a11522c30345
Android: Add initial code to handle button presses and long clicks on DWRender.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2607
diff
changeset
|
5932 render!!.evy = event.y |
2611
ed2c4a503666
Android: Implement button release and motion notify events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2608
diff
changeset
|
5933 // Event will be generated in the onClickListener or |
ed2c4a503666
Android: Implement button release and motion notify events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2608
diff
changeset
|
5934 // onLongClickListener below, just save the location |
2608
a11522c30345
Android: Add initial code to handle button presses and long clicks on DWRender.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2607
diff
changeset
|
5935 } |
a11522c30345
Android: Add initial code to handle button presses and long clicks on DWRender.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2607
diff
changeset
|
5936 MotionEvent.ACTION_UP -> { |
a11522c30345
Android: Add initial code to handle button presses and long clicks on DWRender.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2607
diff
changeset
|
5937 render!!.evx = event.x |
a11522c30345
Android: Add initial code to handle button presses and long clicks on DWRender.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2607
diff
changeset
|
5938 render!!.evy = event.y |
2614
dbcd9416e9c9
Android: Popup menus on Andoird use an anchor View not the touch location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2613
diff
changeset
|
5939 lastClickView = render!! |
2620
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
5940 eventHandlerInt(render!!, DWEvent.BUTTON_RELEASE, event.x.toInt(), event.y.toInt(), render!!.button, 0) |
2611
ed2c4a503666
Android: Implement button release and motion notify events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2608
diff
changeset
|
5941 } |
ed2c4a503666
Android: Implement button release and motion notify events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2608
diff
changeset
|
5942 MotionEvent.ACTION_MOVE -> { |
ed2c4a503666
Android: Implement button release and motion notify events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2608
diff
changeset
|
5943 render!!.evx = event.x |
ed2c4a503666
Android: Implement button release and motion notify events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2608
diff
changeset
|
5944 render!!.evy = event.y |
2614
dbcd9416e9c9
Android: Popup menus on Andoird use an anchor View not the touch location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2613
diff
changeset
|
5945 lastClickView = render!! |
2620
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
5946 eventHandlerInt(render!!, DWEvent.MOTION_NOTIFY, event.x.toInt(), event.y.toInt(), 1, 0) |
2608
a11522c30345
Android: Add initial code to handle button presses and long clicks on DWRender.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2607
diff
changeset
|
5947 } |
a11522c30345
Android: Add initial code to handle button presses and long clicks on DWRender.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2607
diff
changeset
|
5948 } |
a11522c30345
Android: Add initial code to handle button presses and long clicks on DWRender.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2607
diff
changeset
|
5949 return false |
a11522c30345
Android: Add initial code to handle button presses and long clicks on DWRender.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2607
diff
changeset
|
5950 } |
a11522c30345
Android: Add initial code to handle button presses and long clicks on DWRender.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2607
diff
changeset
|
5951 }) |
a11522c30345
Android: Add initial code to handle button presses and long clicks on DWRender.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2607
diff
changeset
|
5952 render!!.setOnLongClickListener{ |
a11522c30345
Android: Add initial code to handle button presses and long clicks on DWRender.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2607
diff
changeset
|
5953 // Long click functions as button 2 |
2611
ed2c4a503666
Android: Implement button release and motion notify events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2608
diff
changeset
|
5954 render!!.button = 2 |
2614
dbcd9416e9c9
Android: Popup menus on Andoird use an anchor View not the touch location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2613
diff
changeset
|
5955 lastClickView = render!! |
2620
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
5956 eventHandlerInt(render!!, DWEvent.BUTTON_PRESS, render!!.evx.toInt(), render!!.evy.toInt(), 2, 0) |
2608
a11522c30345
Android: Add initial code to handle button presses and long clicks on DWRender.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2607
diff
changeset
|
5957 true |
a11522c30345
Android: Add initial code to handle button presses and long clicks on DWRender.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2607
diff
changeset
|
5958 } |
a11522c30345
Android: Add initial code to handle button presses and long clicks on DWRender.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2607
diff
changeset
|
5959 render!!.setOnClickListener{ |
a11522c30345
Android: Add initial code to handle button presses and long clicks on DWRender.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2607
diff
changeset
|
5960 // Normal click functions as button 1 |
2611
ed2c4a503666
Android: Implement button release and motion notify events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2608
diff
changeset
|
5961 render!!.button = 1 |
2614
dbcd9416e9c9
Android: Popup menus on Andoird use an anchor View not the touch location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2613
diff
changeset
|
5962 lastClickView = render!! |
2620
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
5963 eventHandlerInt(render!!, DWEvent.BUTTON_PRESS, render!!.evx.toInt(), render!!.evy.toInt(), 1, 0) |
2608
a11522c30345
Android: Add initial code to handle button presses and long clicks on DWRender.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2607
diff
changeset
|
5964 } |
2596
60ec91d23746
Android: Add initial keyboard support for Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2595
diff
changeset
|
5965 render!!.setOnKeyListener(View.OnKeyListener { v, keyCode, event -> |
60ec91d23746
Android: Add initial keyboard support for Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2595
diff
changeset
|
5966 if (event.action == KeyEvent.ACTION_DOWN) { |
2620
dcd71b04cc46
Android: Add internal event constants for more clarity about what code does.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2614
diff
changeset
|
5967 eventHandlerKey(render!!, DWEvent.KEY_PRESS, keyCode, event.unicodeChar, event.modifiers, event.characters) |
2596
60ec91d23746
Android: Add initial keyboard support for Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2595
diff
changeset
|
5968 } |
60ec91d23746
Android: Add initial keyboard support for Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2595
diff
changeset
|
5969 false |
60ec91d23746
Android: Add initial keyboard support for Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2595
diff
changeset
|
5970 }) |
2530
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
5971 } |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
5972 return render |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
5973 } |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
5974 |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
5975 fun renderRedraw(render: DWRender) |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
5976 { |
2539
822f814a54f4
Android: Fix memory corruption issue due to incorrectly allocating HPIXMAP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2538
diff
changeset
|
5977 runOnUiThread { |
822f814a54f4
Android: Fix memory corruption issue due to incorrectly allocating HPIXMAP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2538
diff
changeset
|
5978 render.invalidate() |
822f814a54f4
Android: Fix memory corruption issue due to incorrectly allocating HPIXMAP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2538
diff
changeset
|
5979 } |
2530
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
5980 } |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
5981 |
2531
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
5982 fun pixmapBitBlt(dstr: DWRender?, dstp: Bitmap?, dstx: Int, dsty: Int, dstw: Int, dsth: Int, |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
5983 srcr: DWRender?, srcp: Bitmap?, srcy: Int, srcx: Int, srcw: Int, srch: Int): Int |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
5984 { |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
5985 val dst = Rect(dstx, dsty, dstx + dstw, dsty + dsth) |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
5986 val src = Rect(srcx, srcy, srcx + srcw, srcy + srch) |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
5987 var retval = 1 |
2531
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
5988 |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
5989 if(srcw == -1) { |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
5990 src.right = srcx + dstw |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
5991 } |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
5992 if(srch == -1) { |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
5993 src.bottom = srcy + dsth |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
5994 } |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
5995 |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
5996 waitOnUiThread { |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
5997 var canvas: Canvas? = null |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
5998 var bitmap: Bitmap? = null |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
5999 |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6000 if(dstr != null) { |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6001 canvas = dstr.cachedCanvas |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6002 } else if(dstp != null) { |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6003 canvas = Canvas(dstp) |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6004 } |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6005 |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6006 if(srcp != null) { |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6007 bitmap = srcp |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6008 } else if(srcr != null) { |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6009 bitmap = Bitmap.createBitmap(srcr.layoutParams.width, |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6010 srcr.layoutParams.height, Bitmap.Config.ARGB_8888) |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6011 val c = Canvas(bitmap) |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6012 srcr.layout(srcr.left, srcr.top, srcr.right, srcr.bottom) |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6013 srcr.draw(c) |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6014 } |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6015 |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6016 if(canvas != null && bitmap != null) { |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6017 canvas.drawBitmap(bitmap, src, dst, null) |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6018 retval = 0 |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6019 } |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6020 } |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6021 return retval |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6022 } |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6023 |
2580
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
6024 fun drawPoint(render: DWRender?, bitmap: Bitmap?, x: Int, y: Int, fgColor: Long, bgColor: Long) |
2531
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6025 { |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6026 waitOnUiThread { |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6027 var canvas: Canvas? = null |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6028 |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6029 if(render != null) { |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6030 canvas = render.cachedCanvas |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6031 } else if(bitmap != null) { |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6032 canvas = Canvas(bitmap) |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6033 } |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6034 |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6035 if(canvas != null) { |
2572
bbe693293be5
Android: New color handling system, save the color in the C API and pass
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2568
diff
changeset
|
6036 colorsSet(fgColor, bgColor) |
2531
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6037 canvas.drawPoint(x.toFloat(), y.toFloat(), Paint()) |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6038 } |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6039 } |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6040 } |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6041 |
2580
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
6042 fun drawLine(render: DWRender?, bitmap: Bitmap?, x1: Int, y1: Int, x2: Int, y2: Int, fgColor: Long, bgColor: Long) |
2531
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6043 { |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6044 waitOnUiThread { |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6045 var canvas: Canvas? = null |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6046 |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6047 if(render != null) { |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6048 canvas = render.cachedCanvas |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6049 } else if(bitmap != null) { |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6050 canvas = Canvas(bitmap) |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6051 } |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6052 |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6053 if(canvas != null) { |
2572
bbe693293be5
Android: New color handling system, save the color in the C API and pass
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2568
diff
changeset
|
6054 colorsSet(fgColor, bgColor) |
2535
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6055 paint.flags = 0 |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6056 paint.style = Paint.Style.STROKE |
2531
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6057 canvas.drawLine(x1.toFloat(), y1.toFloat(), x2.toFloat(), y2.toFloat(), paint) |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6058 } |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6059 } |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6060 } |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6061 |
2547
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6062 fun fontTextExtentsGet(render: DWRender?, bitmap: Bitmap?, text:String, typeface: Typeface?, fontsize: Int, window: View?): Long |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6063 { |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6064 var dimensions: Long = 0 |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6065 |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6066 waitOnUiThread { |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
6067 val rect = Rect() |
2547
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6068 |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6069 if (render != null) { |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6070 if (render.typeface != null) { |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6071 paint.typeface = render.typeface |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6072 if (render.fontsize != null && render.fontsize!! > 0F) { |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6073 paint.textSize = render.fontsize!! |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6074 } |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6075 } |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6076 } else if (bitmap != null) { |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6077 if (typeface != null) { |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6078 paint.typeface = typeface |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6079 if (fontsize > 0) { |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6080 paint.textSize = fontsize.toFloat() |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6081 } |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6082 } else if (window != null && window is DWRender) { |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6083 val secondary: DWRender = window |
2547
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6084 |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6085 if (secondary.typeface != null) { |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6086 paint.typeface = secondary.typeface |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6087 if (secondary.fontsize != null && secondary.fontsize!! > 0F) { |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6088 paint.textSize = secondary.fontsize!! |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6089 } |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6090 } |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6091 } |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6092 } |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6093 paint.getTextBounds(text, 0, text.length, rect) |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6094 val textheight = rect.bottom - rect.top |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6095 val textwidth = rect.right - rect.left |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6096 dimensions = textwidth.toLong() or (textheight.toLong() shl 32) |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6097 } |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6098 return dimensions |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6099 } |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6100 |
2572
bbe693293be5
Android: New color handling system, save the color in the C API and pass
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2568
diff
changeset
|
6101 fun drawText(render: DWRender?, bitmap: Bitmap?, x: Int, y: Int, text:String, typeface: Typeface?, |
2580
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
6102 fontsize: Int, window: View?, fgColor: Long, bgColor: Long) |
2535
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6103 { |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6104 waitOnUiThread { |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6105 var canvas: Canvas? = null |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6106 |
2547
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6107 if(render != null && render.cachedCanvas != null) { |
2535
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6108 canvas = render.cachedCanvas |
2547
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6109 if(render.typeface != null) { |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6110 paint.typeface = render.typeface |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6111 if(render.fontsize != null && render.fontsize!! > 0F) { |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6112 paint.textSize = render.fontsize!! |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6113 } |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6114 } |
2535
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6115 } else if(bitmap != null) { |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6116 canvas = Canvas(bitmap) |
2547
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6117 if(typeface != null) { |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6118 paint.typeface = typeface |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6119 if(fontsize > 0) { |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6120 paint.textSize = fontsize.toFloat() |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6121 } |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6122 } else if(window != null && window is DWRender) { |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6123 val secondary: DWRender = window |
2547
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6124 |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6125 if(secondary.typeface != null) { |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6126 paint.typeface = secondary.typeface |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6127 if(secondary.fontsize != null && secondary.fontsize!! > 0F) { |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6128 paint.textSize = secondary.fontsize!! |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6129 } |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6130 } |
dbd15c13f5bb
Android: Implement most of the font functions and control/widget color.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2546
diff
changeset
|
6131 } |
2535
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6132 } |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6133 |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6134 if(canvas != null) { |
2572
bbe693293be5
Android: New color handling system, save the color in the C API and pass
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2568
diff
changeset
|
6135 colorsSet(fgColor, bgColor) |
2535
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6136 // Save the old color for later... |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
6137 val rect = Rect() |
2535
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6138 paint.flags = 0 |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6139 paint.style = Paint.Style.FILL_AND_STROKE |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6140 paint.textAlign = Paint.Align.LEFT |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6141 paint.getTextBounds(text, 0, text.length, rect) |
2538
1b3b40c89cd0
Android: Move the text to below the point, not above it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2537
diff
changeset
|
6142 val textheight = rect.bottom - rect.top |
2637
22105f99dd6a
Android: Add support for transparent background color for text drawing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2620
diff
changeset
|
6143 if(bgcolor != null) { |
22105f99dd6a
Android: Add support for transparent background color for text drawing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2620
diff
changeset
|
6144 val oldcolor = paint.color |
22105f99dd6a
Android: Add support for transparent background color for text drawing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2620
diff
changeset
|
6145 // Prepare to draw the background rect |
22105f99dd6a
Android: Add support for transparent background color for text drawing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2620
diff
changeset
|
6146 paint.color = bgcolor as Int |
22105f99dd6a
Android: Add support for transparent background color for text drawing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2620
diff
changeset
|
6147 rect.top += y + textheight |
22105f99dd6a
Android: Add support for transparent background color for text drawing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2620
diff
changeset
|
6148 rect.bottom += y + textheight |
22105f99dd6a
Android: Add support for transparent background color for text drawing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2620
diff
changeset
|
6149 rect.left += x |
22105f99dd6a
Android: Add support for transparent background color for text drawing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2620
diff
changeset
|
6150 rect.right += x |
22105f99dd6a
Android: Add support for transparent background color for text drawing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2620
diff
changeset
|
6151 canvas.drawRect(rect, paint) |
22105f99dd6a
Android: Add support for transparent background color for text drawing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2620
diff
changeset
|
6152 // Restore the color and prepare to draw text |
22105f99dd6a
Android: Add support for transparent background color for text drawing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2620
diff
changeset
|
6153 paint.color = oldcolor |
22105f99dd6a
Android: Add support for transparent background color for text drawing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2620
diff
changeset
|
6154 } |
2535
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6155 paint.style = Paint.Style.STROKE |
2538
1b3b40c89cd0
Android: Move the text to below the point, not above it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2537
diff
changeset
|
6156 canvas.drawText(text, x.toFloat(), y.toFloat() + textheight.toFloat(), paint) |
2535
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6157 } |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6158 } |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6159 } |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6160 |
2580
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
6161 fun drawRect(render: DWRender?, bitmap: Bitmap?, x: Int, y: Int, width: Int, height: Int, fgColor: Long, bgColor: Long) |
2531
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6162 { |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6163 waitOnUiThread { |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6164 var canvas: Canvas? = null |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6165 |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6166 if(render != null) { |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6167 canvas = render.cachedCanvas |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6168 } else if(bitmap != null) { |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6169 canvas = Canvas(bitmap) |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6170 } |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6171 |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6172 if(canvas != null) { |
2572
bbe693293be5
Android: New color handling system, save the color in the C API and pass
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2568
diff
changeset
|
6173 colorsSet(fgColor, bgColor) |
2535
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6174 paint.flags = 0 |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6175 paint.style = Paint.Style.FILL_AND_STROKE |
2531
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6176 canvas.drawRect(x.toFloat(), y.toFloat(), x.toFloat() + width.toFloat(), y.toFloat() + height.toFloat(), paint) |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6177 } |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6178 } |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6179 } |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6180 |
2572
bbe693293be5
Android: New color handling system, save the color in the C API and pass
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2568
diff
changeset
|
6181 fun drawPolygon(render: DWRender?, bitmap: Bitmap?, flags: Int, npoints: Int, |
2580
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
6182 x: IntArray, y: IntArray, fgColor: Long, bgColor: Long) |
2535
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6183 { |
2537
cd9d2ba251d5
Android: Reimplement drawPolygon() using drawPath() instead of drawLines/Points().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2536
diff
changeset
|
6184 // Create a path with all our points |
cd9d2ba251d5
Android: Reimplement drawPolygon() using drawPath() instead of drawLines/Points().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2536
diff
changeset
|
6185 val path = Path() |
2535
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6186 |
2537
cd9d2ba251d5
Android: Reimplement drawPolygon() using drawPath() instead of drawLines/Points().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2536
diff
changeset
|
6187 path.moveTo(x[0].toFloat(), y[0].toFloat()) |
cd9d2ba251d5
Android: Reimplement drawPolygon() using drawPath() instead of drawLines/Points().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2536
diff
changeset
|
6188 for (i in 1 until npoints) { |
cd9d2ba251d5
Android: Reimplement drawPolygon() using drawPath() instead of drawLines/Points().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2536
diff
changeset
|
6189 path.lineTo(x[i].toFloat(), y[i].toFloat()) |
2535
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6190 } |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6191 |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6192 waitOnUiThread { |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6193 var canvas: Canvas? = null |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6194 |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6195 if(render != null) { |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6196 canvas = render.cachedCanvas |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6197 } else if(bitmap != null) { |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6198 canvas = Canvas(bitmap) |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6199 } |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6200 |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6201 if(canvas != null) { |
2572
bbe693293be5
Android: New color handling system, save the color in the C API and pass
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2568
diff
changeset
|
6202 colorsSet(fgColor, bgColor) |
2535
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6203 // Handle the DW_DRAW_NOAA flag |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6204 if((flags and (1 shl 2)) == 0) { |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6205 paint.flags = Paint.ANTI_ALIAS_FLAG |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6206 } else { |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6207 paint.flags = 0 |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6208 } |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6209 // Handle the DW_DRAW_FILL flag |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6210 if((flags and 1) == 1) { |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6211 paint.style = Paint.Style.FILL_AND_STROKE |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6212 } else { |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6213 paint.style = Paint.Style.STROKE |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6214 } |
2537
cd9d2ba251d5
Android: Reimplement drawPolygon() using drawPath() instead of drawLines/Points().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2536
diff
changeset
|
6215 canvas.drawPath(path, paint) |
2535
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6216 } |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6217 } |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6218 } |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6219 |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6220 fun drawArc(render: DWRender?, bitmap: Bitmap?, flags: Int, xorigin: Int, yorigin: Int, |
2580
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
6221 x1: Int, y1: Int, x2: Int, y2: Int, fgColor: Long, bgColor: Long) |
2535
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6222 { |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6223 waitOnUiThread { |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6224 var canvas: Canvas? = null |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6225 |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6226 if(render != null) { |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6227 canvas = render.cachedCanvas |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6228 } else if(bitmap != null) { |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6229 canvas = Canvas(bitmap) |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6230 } |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6231 |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6232 if(canvas != null) { |
2572
bbe693293be5
Android: New color handling system, save the color in the C API and pass
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2568
diff
changeset
|
6233 colorsSet(fgColor, bgColor) |
bbe693293be5
Android: New color handling system, save the color in the C API and pass
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2568
diff
changeset
|
6234 |
2535
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6235 // Handle the DW_DRAW_NOAA flag |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6236 if((flags and (1 shl 2)) == 0) { |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6237 paint.flags = Paint.ANTI_ALIAS_FLAG |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6238 } else { |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6239 paint.flags = 0 |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6240 } |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6241 // Handle the DW_DRAW_FILL flag |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6242 if((flags and 1) == 1) { |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6243 paint.style = Paint.Style.FILL_AND_STROKE |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6244 } else { |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6245 paint.style = Paint.Style.STROKE |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6246 } |
2536
d172ab2eddb6
Android: Implement DW_DRAW_FULL flag for dw_draw_arc().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2535
diff
changeset
|
6247 // Handle the DW_DRAW_FULL flag |
d172ab2eddb6
Android: Implement DW_DRAW_FULL flag for dw_draw_arc().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2535
diff
changeset
|
6248 if((flags and (1 shl 1)) != 0) { |
2576
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6249 var left: Float = x1.toFloat() |
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6250 var top: Float = y1.toFloat() |
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6251 var right: Float = x2.toFloat() |
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6252 var bottom: Float = y2.toFloat() |
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6253 |
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6254 if(x2 < x1) { |
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6255 left = x2.toFloat() |
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6256 right = x1.toFloat() |
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6257 } |
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6258 if(y2 < y1) { |
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6259 top = y2.toFloat() |
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6260 bottom = y1.toFloat() |
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6261 } |
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6262 |
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6263 canvas.drawOval(left, top, right, bottom, paint) |
2536
d172ab2eddb6
Android: Implement DW_DRAW_FULL flag for dw_draw_arc().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2535
diff
changeset
|
6264 } else { |
2576
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6265 var a1: Double = Math.atan2((y1 - yorigin).toDouble(), (x1 - xorigin).toDouble()) |
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6266 var a2: Double = Math.atan2((y2 - yorigin).toDouble(), (x2 - xorigin).toDouble()) |
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6267 val dx = (xorigin - x1).toDouble() |
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6268 val dy = (yorigin - y1).toDouble() |
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6269 val r: Double = Math.sqrt(dx * dx + dy * dy) |
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6270 val left = (xorigin-r).toFloat() |
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6271 val top = (yorigin-r).toFloat() |
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6272 val rect = RectF(left, top, (left + (r*2)).toFloat(), (top + (r*2)).toFloat()) |
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6273 |
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6274 // Convert to degrees |
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6275 a1 *= 180.0 / Math.PI |
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6276 a2 *= 180.0 / Math.PI |
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6277 val sweep = Math.abs(a1 - a2) |
db097ec28c90
Android: Fix drawArc() FULL option and refactor to reduce calculations.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2575
diff
changeset
|
6278 |
2536
d172ab2eddb6
Android: Implement DW_DRAW_FULL flag for dw_draw_arc().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2535
diff
changeset
|
6279 canvas.drawArc(rect, a1.toFloat(), sweep.toFloat(), false, paint) |
d172ab2eddb6
Android: Implement DW_DRAW_FULL flag for dw_draw_arc().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2535
diff
changeset
|
6280 } |
2535
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6281 } |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6282 } |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6283 } |
d862d9e4069b
Android: Implement most of the rest of drawing except for fonts...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2531
diff
changeset
|
6284 |
2580
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
6285 fun colorFromDW(color: Long): Int |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
6286 { |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
6287 val red: Int = (color and 0x000000FF).toInt() |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
6288 val green: Int = ((color and 0x0000FF00) shr 8).toInt() |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
6289 val blue: Int = ((color and 0x00FF0000) shr 16).toInt() |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
6290 |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
6291 return Color.rgb(red, green, blue) |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
6292 } |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
6293 |
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
6294 fun colorsSet(fgColor: Long, bgColor: Long) |
2531
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6295 { |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6296 waitOnUiThread { |
2580
473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2579
diff
changeset
|
6297 paint.color = colorFromDW(fgColor) |
2637
22105f99dd6a
Android: Add support for transparent background color for text drawing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2620
diff
changeset
|
6298 if(bgColor != -1L) { |
22105f99dd6a
Android: Add support for transparent background color for text drawing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2620
diff
changeset
|
6299 this.bgcolor = colorFromDW(bgColor) |
22105f99dd6a
Android: Add support for transparent background color for text drawing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2620
diff
changeset
|
6300 } else { |
22105f99dd6a
Android: Add support for transparent background color for text drawing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2620
diff
changeset
|
6301 this.bgcolor = null |
22105f99dd6a
Android: Add support for transparent background color for text drawing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2620
diff
changeset
|
6302 } |
2531
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6303 } |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6304 } |
f45ebd96ebe5
Android: First attempts at implementing drawing functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2530
diff
changeset
|
6305 |
2490
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
6306 fun timerConnect(interval: Long, sigfunc: Long, data: Long): Timer |
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
6307 { |
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
6308 // creating timer task, timer |
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
6309 val t = Timer() |
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
6310 val tt: TimerTask = object : TimerTask() { |
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
6311 override fun run() { |
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
6312 if(eventHandlerTimer(sigfunc, data) == 0) { |
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
6313 t.cancel() |
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
6314 } |
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
6315 } |
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
6316 } |
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
6317 t.scheduleAtFixedRate(tt, interval, interval) |
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
6318 return t |
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
6319 } |
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
6320 |
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
6321 fun timerDisconnect(timer: Timer) |
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
6322 { |
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
6323 timer.cancel() |
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
6324 } |
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
6325 |
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
6326 fun doBeep(duration: Int) |
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
6327 { |
2491
bf4fe6bb512b
Android: Fix the permission error on the beep...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2490
diff
changeset
|
6328 val toneGen = ToneGenerator(AudioManager.STREAM_ALARM, 100) |
2490
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
6329 toneGen.startTone(ToneGenerator.TONE_CDMA_PIP, duration) |
2491
bf4fe6bb512b
Android: Fix the permission error on the beep...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2490
diff
changeset
|
6330 val handler = Handler(Looper.getMainLooper()) |
bf4fe6bb512b
Android: Fix the permission error on the beep...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2490
diff
changeset
|
6331 handler.postDelayed({ |
bf4fe6bb512b
Android: Fix the permission error on the beep...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2490
diff
changeset
|
6332 toneGen.release() |
bf4fe6bb512b
Android: Fix the permission error on the beep...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2490
diff
changeset
|
6333 }, (duration + 50).toLong()) |
2488
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
6334 } |
666af45f33b5
Android: Implment a bunch of window functions: enable/disable/data/id
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2487
diff
changeset
|
6335 |
2482
4888503c3e3e
Android: Implement dw_debug() using the Android Log class.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2481
diff
changeset
|
6336 fun debugMessage(text: String) |
4888503c3e3e
Android: Implement dw_debug() using the Android Log class.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2481
diff
changeset
|
6337 { |
2690
755d9ad07aaf
Android: Fix state exception by calling notifyDataSetChanged() on DWListBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2689
diff
changeset
|
6338 Log.d(appID, text) |
2482
4888503c3e3e
Android: Implement dw_debug() using the Android Log class.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2481
diff
changeset
|
6339 } |
4888503c3e3e
Android: Implement dw_debug() using the Android Log class.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2481
diff
changeset
|
6340 |
2788
8a4f162810c2
Android: During dw_file_browse() request read/write access to external
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2785
diff
changeset
|
6341 @Deprecated("Deprecated in Java") |
2594
2c15b3d41fe4
Android: Add preliminary new file browser that uses the system ACTION_GET_CONTENT Intent.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2590
diff
changeset
|
6342 override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { |
2c15b3d41fe4
Android: Add preliminary new file browser that uses the system ACTION_GET_CONTENT Intent.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2590
diff
changeset
|
6343 super.onActivityResult(requestCode, resultCode, data) |
2595
6b5057dd6b8e
Android: Experimental change for the new file browser... require it be on secondary...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2594
diff
changeset
|
6344 if(requestCode == 100) { |
6b5057dd6b8e
Android: Experimental change for the new file browser... require it be on secondary...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2594
diff
changeset
|
6345 fileLock.lock() |
6b5057dd6b8e
Android: Experimental change for the new file browser... require it be on secondary...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2594
diff
changeset
|
6346 if(resultCode == Activity.RESULT_OK) { |
6b5057dd6b8e
Android: Experimental change for the new file browser... require it be on secondary...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2594
diff
changeset
|
6347 fileURI = data!!.data |
6b5057dd6b8e
Android: Experimental change for the new file browser... require it be on secondary...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2594
diff
changeset
|
6348 } else { |
6b5057dd6b8e
Android: Experimental change for the new file browser... require it be on secondary...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2594
diff
changeset
|
6349 fileURI = null |
6b5057dd6b8e
Android: Experimental change for the new file browser... require it be on secondary...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2594
diff
changeset
|
6350 } |
6b5057dd6b8e
Android: Experimental change for the new file browser... require it be on secondary...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2594
diff
changeset
|
6351 fileCond.signal() |
6b5057dd6b8e
Android: Experimental change for the new file browser... require it be on secondary...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2594
diff
changeset
|
6352 fileLock.unlock() |
2594
2c15b3d41fe4
Android: Add preliminary new file browser that uses the system ACTION_GET_CONTENT Intent.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2590
diff
changeset
|
6353 } |
2c15b3d41fe4
Android: Add preliminary new file browser that uses the system ACTION_GET_CONTENT Intent.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2590
diff
changeset
|
6354 } |
2c15b3d41fe4
Android: Add preliminary new file browser that uses the system ACTION_GET_CONTENT Intent.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2590
diff
changeset
|
6355 |
2715
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6356 fun getDataColumn(context: Context, uri: Uri?, selection: String?, selectionArgs: Array<String?>?): String? { |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6357 var cursor: Cursor? = null |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6358 val column = "_data" |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6359 val projection = arrayOf(column) |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6360 |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6361 try { |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6362 cursor = context.contentResolver.query( |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6363 uri!!, projection, selection, selectionArgs, |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6364 null |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6365 ) |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6366 if (cursor != null && cursor.moveToFirst()) { |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6367 val index = cursor.getColumnIndexOrThrow(column) |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6368 return cursor.getString(index) |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6369 } |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6370 } finally { |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6371 cursor?.close() |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6372 } |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6373 return null |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6374 } |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6375 |
2790
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
6376 fun fileOpen(filename: String, mode: Int): Int |
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
6377 { |
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
6378 var retval: Int = -1 |
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
6379 var uri = Uri.parse(filename) |
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
6380 var smode: String = "r" |
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
6381 var fd: ParcelFileDescriptor? = null |
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
6382 |
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
6383 if((mode and OsConstants.O_WRONLY) == OsConstants.O_WRONLY) { |
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
6384 smode = "w" |
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
6385 } else if((mode and OsConstants.O_RDWR) == OsConstants.O_RDWR) { |
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
6386 smode = "rw" |
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
6387 } |
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
6388 try { |
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
6389 fd = contentResolver.openFileDescriptor(uri, smode) |
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
6390 } catch (e: FileNotFoundException) { |
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
6391 fd = null |
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
6392 } |
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
6393 if (fd != null) { |
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
6394 retval = fd.fd |
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
6395 } |
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
6396 return retval |
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
6397 } |
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
6398 |
2715
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6399 // Defpath does not seem to be supported on Android using the ACTION_GET_CONTENT Intent |
2594
2c15b3d41fe4
Android: Add preliminary new file browser that uses the system ACTION_GET_CONTENT Intent.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2590
diff
changeset
|
6400 fun fileBrowseNew(title: String, defpath: String?, ext: String?, flags: Int): String? |
2c15b3d41fe4
Android: Add preliminary new file browser that uses the system ACTION_GET_CONTENT Intent.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2590
diff
changeset
|
6401 { |
2c15b3d41fe4
Android: Add preliminary new file browser that uses the system ACTION_GET_CONTENT Intent.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2590
diff
changeset
|
6402 var retval: String? = null |
2788
8a4f162810c2
Android: During dw_file_browse() request read/write access to external
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2785
diff
changeset
|
6403 var permission = Manifest.permission.WRITE_EXTERNAL_STORAGE |
8a4f162810c2
Android: During dw_file_browse() request read/write access to external
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2785
diff
changeset
|
6404 var permissions: Int = -1 |
8a4f162810c2
Android: During dw_file_browse() request read/write access to external
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2785
diff
changeset
|
6405 |
8a4f162810c2
Android: During dw_file_browse() request read/write access to external
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2785
diff
changeset
|
6406 // Handle requesting permissions if necessary |
8a4f162810c2
Android: During dw_file_browse() request read/write access to external
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2785
diff
changeset
|
6407 permissions = ContextCompat.checkSelfPermission(this, permission) |
8a4f162810c2
Android: During dw_file_browse() request read/write access to external
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2785
diff
changeset
|
6408 if(permissions == -1) //PERMISSION_DENIED |
8a4f162810c2
Android: During dw_file_browse() request read/write access to external
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2785
diff
changeset
|
6409 { |
8a4f162810c2
Android: During dw_file_browse() request read/write access to external
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2785
diff
changeset
|
6410 // You can directly ask for the permission. |
8a4f162810c2
Android: During dw_file_browse() request read/write access to external
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2785
diff
changeset
|
6411 requestPermissions(arrayOf(permission), 100) |
8a4f162810c2
Android: During dw_file_browse() request read/write access to external
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2785
diff
changeset
|
6412 } |
2594
2c15b3d41fe4
Android: Add preliminary new file browser that uses the system ACTION_GET_CONTENT Intent.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2590
diff
changeset
|
6413 |
2595
6b5057dd6b8e
Android: Experimental change for the new file browser... require it be on secondary...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2594
diff
changeset
|
6414 // This can't be called from the main thread |
6b5057dd6b8e
Android: Experimental change for the new file browser... require it be on secondary...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2594
diff
changeset
|
6415 if(Looper.getMainLooper() != Looper.myLooper()) { |
2715
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6416 var success = true |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6417 |
2595
6b5057dd6b8e
Android: Experimental change for the new file browser... require it be on secondary...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2594
diff
changeset
|
6418 fileLock.lock() |
6b5057dd6b8e
Android: Experimental change for the new file browser... require it be on secondary...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2594
diff
changeset
|
6419 waitOnUiThread { |
6b5057dd6b8e
Android: Experimental change for the new file browser... require it be on secondary...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2594
diff
changeset
|
6420 val fileintent = Intent(Intent.ACTION_GET_CONTENT) |
2715
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6421 // TODO: Filtering requires MIME types, not extensions |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6422 fileintent.type = "*/*" |
2595
6b5057dd6b8e
Android: Experimental change for the new file browser... require it be on secondary...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2594
diff
changeset
|
6423 fileintent.addCategory(Intent.CATEGORY_OPENABLE) |
2715
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6424 try { |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6425 startActivityForResult(fileintent, 100) |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6426 } catch (e: ActivityNotFoundException) { |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6427 success = false |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6428 } |
2595
6b5057dd6b8e
Android: Experimental change for the new file browser... require it be on secondary...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2594
diff
changeset
|
6429 } |
6b5057dd6b8e
Android: Experimental change for the new file browser... require it be on secondary...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2594
diff
changeset
|
6430 |
2715
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6431 if(success) { |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6432 // Wait until the intent finishes. |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6433 fileCond.await() |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6434 fileLock.unlock() |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6435 |
2790
20d39af27aa4
Android: Add a new function for Android dw_file_open() which will open the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2789
diff
changeset
|
6436 // Save the URI string for later use |
2795
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6437 retval = fileURI.toString() |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6438 |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6439 // If DW_DIRECTORY_OPEN or DW_FILE_PATH ... use the path not URI |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6440 if((flags and 65535) == 2 || ((flags shr 16) and 1) == 1) { |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6441 if (DocumentsContract.isDocumentUri(this, fileURI)) { |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6442 // ExternalStorageProvider |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6443 if (fileURI?.authority == "com.android.externalstorage.documents") { |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6444 val docId = DocumentsContract.getDocumentId(fileURI) |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6445 val split = docId.split(":").toTypedArray() |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6446 retval = Environment.getExternalStorageDirectory() |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6447 .toString() + "/" + split[1] |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6448 } else if (fileURI?.authority == "com.android.providers.downloads.documents") { |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6449 val id = DocumentsContract.getDocumentId(fileURI) |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6450 val contentUri = ContentUris.withAppendedId( |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6451 Uri.parse("content://downloads/public_downloads"), |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6452 java.lang.Long.valueOf(id) |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6453 ) |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6454 retval = getDataColumn(this, contentUri, null, null) |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6455 } else if (fileURI?.authority == "com.android.providers.media.documents") { |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6456 val docId = DocumentsContract.getDocumentId(fileURI) |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6457 val split = docId.split(":").toTypedArray() |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6458 val type = split[0] |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6459 var contentUri: Uri? = null |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6460 if ("image" == type) { |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6461 contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6462 } else if ("video" == type) { |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6463 contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6464 } else if ("audio" == type) { |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6465 contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6466 } |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6467 val selection = "_id=?" |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6468 val selectionArgs = arrayOf<String?>( |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6469 split[1] |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6470 ) |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6471 retval = getDataColumn(this, contentUri, selection, selectionArgs) |
2715
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6472 } |
2795
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6473 } else if (fileURI?.scheme == "content") { |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6474 retval = getDataColumn(this, fileURI, null, null) |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6475 } |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6476 // File |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6477 else if (fileURI?.scheme == "file") { |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6478 retval = fileURI?.path |
2715
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6479 } |
2795
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6480 |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6481 // If we are opening a directory DW_DIRECTORY_OPEN |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6482 if (retval != null && (flags and 65535) == 2) { |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6483 val split = retval.split("/") |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6484 val filename = split.last() |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6485 |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6486 if (filename != null) { |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6487 val pathlen = retval.length |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6488 val filelen = filename.length |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6489 |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6490 retval = retval.substring(0, pathlen - filelen - 1) |
5c61aba17b69
Android: Change dw_file_browse() to return URIs or paths on Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2790
diff
changeset
|
6491 } |
2715
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6492 } |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6493 } |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6494 } else { |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6495 // If we failed to start the intent... use old dialog |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6496 fileLock.unlock() |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6497 retval = fileBrowse(title, defpath, ext, flags) |
2595
6b5057dd6b8e
Android: Experimental change for the new file browser... require it be on secondary...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2594
diff
changeset
|
6498 } |
2594
2c15b3d41fe4
Android: Add preliminary new file browser that uses the system ACTION_GET_CONTENT Intent.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2590
diff
changeset
|
6499 } |
2c15b3d41fe4
Android: Add preliminary new file browser that uses the system ACTION_GET_CONTENT Intent.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2590
diff
changeset
|
6500 return retval |
2c15b3d41fe4
Android: Add preliminary new file browser that uses the system ACTION_GET_CONTENT Intent.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2590
diff
changeset
|
6501 } |
2c15b3d41fe4
Android: Add preliminary new file browser that uses the system ACTION_GET_CONTENT Intent.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2590
diff
changeset
|
6502 |
2526
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
6503 fun fileBrowse(title: String, defpath: String?, ext: String?, flags: Int): String? |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
6504 { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
6505 var retval: String? = null |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
6506 |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
6507 waitOnUiThread { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
6508 val fc = DWFileChooser(this) |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
6509 fc.setFileListener(object: DWFileChooser.FileSelectedListener { |
2594
2c15b3d41fe4
Android: Add preliminary new file browser that uses the system ACTION_GET_CONTENT Intent.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2590
diff
changeset
|
6510 override fun fileSelected(file: File?) { |
2c15b3d41fe4
Android: Add preliminary new file browser that uses the system ACTION_GET_CONTENT Intent.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2590
diff
changeset
|
6511 // do something with the file |
2c15b3d41fe4
Android: Add preliminary new file browser that uses the system ACTION_GET_CONTENT Intent.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2590
diff
changeset
|
6512 retval = file!!.absolutePath |
2c15b3d41fe4
Android: Add preliminary new file browser that uses the system ACTION_GET_CONTENT Intent.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2590
diff
changeset
|
6513 throw java.lang.RuntimeException() |
2c15b3d41fe4
Android: Add preliminary new file browser that uses the system ACTION_GET_CONTENT Intent.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2590
diff
changeset
|
6514 } |
2c15b3d41fe4
Android: Add preliminary new file browser that uses the system ACTION_GET_CONTENT Intent.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2590
diff
changeset
|
6515 }) |
2526
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
6516 if(ext != null) { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
6517 fc.setExtension(ext) |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
6518 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
6519 fc.showDialog() |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
6520 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
6521 |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
6522 // loop till a runtime exception is triggered. |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
6523 try { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
6524 Looper.loop() |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
6525 } catch (e2: RuntimeException) { |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
6526 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
6527 |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
6528 return retval |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
6529 } |
d3f09b3f3703
Android: Initial dw_file_browse() implementation, still needs some work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2524
diff
changeset
|
6530 |
2735
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6531 // No reverse evaluate function to get the offset from a color in a range... |
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6532 // So we do a hacky while loop to test offsets in the range to see if we can |
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6533 // find the color and return the offset... return -1F on failure |
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6534 fun colorSliderOffset(chosenColor: Int, startColor: Int, endColor: Int): Float |
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6535 { |
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6536 val argbEvaluator = android.animation.ArgbEvaluator() |
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6537 var testOffset = 0F |
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6538 |
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6539 while(testOffset <= 1F) { |
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6540 val testColor = argbEvaluator.evaluate(testOffset, startColor, endColor) as Int |
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6541 |
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6542 if(testColor == chosenColor) { |
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6543 return testOffset |
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6544 } |
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6545 testOffset += 0.001F |
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6546 } |
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6547 return -1F |
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6548 } |
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6549 |
2714
26bb1e4a97d0
Android: Add glue to bring up the color wheel when calling dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2713
diff
changeset
|
6550 fun colorChoose(color: Int, alpha: Int, red: Int, green: Int, blue: Int): Int |
26bb1e4a97d0
Android: Add glue to bring up the color wheel when calling dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2713
diff
changeset
|
6551 { |
2715
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6552 var retval: Int = color |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6553 |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6554 // This can't be called from the main thread |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6555 if(Looper.getMainLooper() != Looper.myLooper()) { |
2722
cacde852e2db
Android: Add dialog dismiss and color change handlers to the color chooser.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2720
diff
changeset
|
6556 colorLock.lock() |
2715
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6557 waitOnUiThread { |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6558 val dialog = Dialog(this) |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6559 val colorWheel = ColorWheel(this, null, 0) |
2733
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6560 val gradientBar = GradientSeekBar(this, null, 0) |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6561 val display = View(this) |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6562 val layout = RelativeLayout(this) |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6563 val w = RelativeLayout.LayoutParams.MATCH_PARENT |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6564 val h = RelativeLayout.LayoutParams.WRAP_CONTENT |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6565 val margin = 10 |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6566 |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6567 colorWheel.id = View.generateViewId() |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6568 gradientBar.id = View.generateViewId() |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6569 display.id = View.generateViewId() |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6570 gradientBar.orientation = GradientSeekBar.Orientation.HORIZONTAL |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6571 |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6572 var params: RelativeLayout.LayoutParams = RelativeLayout.LayoutParams(w, 100) |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6573 params.addRule(RelativeLayout.ALIGN_PARENT_TOP) |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6574 params.setMargins(margin,margin,margin,margin) |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6575 layout.addView(display, params) |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6576 params = RelativeLayout.LayoutParams(w, w) |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6577 params.setMargins(margin,margin,margin,margin) |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6578 params.addRule(RelativeLayout.BELOW, display.id) |
2734
cd3c7740e352
Android: Attempt at some Color Chooser improvements... Fix layout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2733
diff
changeset
|
6579 params.addRule(RelativeLayout.ABOVE, gradientBar.id) |
2733
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6580 layout.addView(colorWheel, params) |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6581 params = RelativeLayout.LayoutParams(w, h) |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6582 params.setMargins(margin,margin,margin,margin) |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6583 params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM) |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6584 layout.addView(gradientBar, params) |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6585 |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6586 dialog.setContentView(layout) |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6587 colorChosen = Color.rgb(red, green, blue) |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6588 colorWheel.rgb = colorChosen |
2734
cd3c7740e352
Android: Attempt at some Color Chooser improvements... Fix layout.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2733
diff
changeset
|
6589 gradientBar.setBlackToColor(colorWheel.rgb) |
2735
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6590 val testOffset = colorSliderOffset(colorChosen, gradientBar.startColor, gradientBar.endColor) |
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6591 if(testOffset < 0F) { |
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6592 // If our test method didn't work... convert to HSV |
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6593 // and use the brightness value as the slider offset |
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6594 var hsv = FloatArray(3) |
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6595 Color.colorToHSV(colorChosen, hsv) |
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6596 gradientBar.offset = hsv[2] |
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6597 } else { |
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6598 gradientBar.offset = testOffset |
970cbcdb68f9
Android: This is kind of a hacky solution, but use a while loop to figure out...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2734
diff
changeset
|
6599 } |
2733
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6600 display.setBackgroundColor(colorChosen) |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6601 colorWheel.colorChangeListener = { rgb: Int -> |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6602 gradientBar.setBlackToColor(rgb) |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6603 display.setBackgroundColor(gradientBar.argb) |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6604 colorChosen = gradientBar.argb |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6605 } |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6606 gradientBar.colorChangeListener = { offset: Float, argb: Int -> |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6607 display.setBackgroundColor(argb) |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6608 colorChosen = argb |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6609 } |
2715
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6610 dialog.window?.setLayout( |
2733
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6611 ViewGroup.LayoutParams.MATCH_PARENT, |
34e34d5d56e8
Android: Add a color picker preview area and a gradient slider for contrast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2727
diff
changeset
|
6612 ViewGroup.LayoutParams.MATCH_PARENT |
2715
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6613 ) |
2722
cacde852e2db
Android: Add dialog dismiss and color change handlers to the color chooser.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2720
diff
changeset
|
6614 dialog.setOnDismissListener { |
cacde852e2db
Android: Add dialog dismiss and color change handlers to the color chooser.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2720
diff
changeset
|
6615 colorLock.lock() |
cacde852e2db
Android: Add dialog dismiss and color change handlers to the color chooser.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2720
diff
changeset
|
6616 colorCond.signal() |
cacde852e2db
Android: Add dialog dismiss and color change handlers to the color chooser.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2720
diff
changeset
|
6617 colorLock.unlock() |
cacde852e2db
Android: Add dialog dismiss and color change handlers to the color chooser.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2720
diff
changeset
|
6618 } |
2715
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6619 dialog.show() |
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6620 } |
2722
cacde852e2db
Android: Add dialog dismiss and color change handlers to the color chooser.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2720
diff
changeset
|
6621 colorCond.await() |
cacde852e2db
Android: Add dialog dismiss and color change handlers to the color chooser.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2720
diff
changeset
|
6622 retval = colorChosen |
cacde852e2db
Android: Add dialog dismiss and color change handlers to the color chooser.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2720
diff
changeset
|
6623 colorLock.unlock() |
2714
26bb1e4a97d0
Android: Add glue to bring up the color wheel when calling dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2713
diff
changeset
|
6624 } |
26bb1e4a97d0
Android: Add glue to bring up the color wheel when calling dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2713
diff
changeset
|
6625 return retval |
26bb1e4a97d0
Android: Add glue to bring up the color wheel when calling dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2713
diff
changeset
|
6626 } |
26bb1e4a97d0
Android: Add glue to bring up the color wheel when calling dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2713
diff
changeset
|
6627 |
2486
cec43818bd3e
Android: Implement dw_messagebox() ... seems we can't just cleanly exit().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2484
diff
changeset
|
6628 fun messageBox(title: String, body: String, flags: Int): Int |
cec43818bd3e
Android: Implement dw_messagebox() ... seems we can't just cleanly exit().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2484
diff
changeset
|
6629 { |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6630 var retval = 0 |
2486
cec43818bd3e
Android: Implement dw_messagebox() ... seems we can't just cleanly exit().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2484
diff
changeset
|
6631 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
6632 waitOnUiThread { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
6633 // make a text input dialog and show it |
2578
a36448beb7f7
Android: Implement dw_window_set_style() for static text widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2576
diff
changeset
|
6634 val alert = AlertDialog.Builder(this) |
2486
cec43818bd3e
Android: Implement dw_messagebox() ... seems we can't just cleanly exit().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2484
diff
changeset
|
6635 |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
6636 alert.setTitle(title) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
6637 alert.setMessage(body) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
6638 if ((flags and (1 shl 3)) != 0) { |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6639 alert.setPositiveButton("Yes" |
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6640 ) |
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6641 //R.string.yes, |
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6642 { _: DialogInterface, _: Int -> |
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6643 retval = 1 |
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6644 throw java.lang.RuntimeException() |
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6645 } |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
6646 } |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
6647 if ((flags and ((1 shl 1) or (1 shl 2))) != 0) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
6648 alert.setNegativeButton( |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6649 R.string.ok |
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6650 ) { _: DialogInterface, _: Int -> |
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6651 retval = 0 |
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6652 throw java.lang.RuntimeException() |
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6653 } |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
6654 } |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
6655 if ((flags and ((1 shl 3) or (1 shl 4))) != 0) { |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6656 alert.setNegativeButton("No" |
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6657 ) |
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6658 //R.string.no, |
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6659 { _: DialogInterface, _: Int -> |
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6660 retval = 0 |
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6661 throw java.lang.RuntimeException() |
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6662 } |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
6663 } |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
6664 if ((flags and ((1 shl 2) or (1 shl 4))) != 0) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
6665 alert.setNeutralButton( |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6666 R.string.cancel |
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6667 ) { _: DialogInterface, _: Int -> |
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6668 retval = 2 |
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6669 throw java.lang.RuntimeException() |
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6670 } |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
6671 } |
2573
ea75e295025b
Android: Make message boxes modal (not cancelable).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2572
diff
changeset
|
6672 alert.setCancelable(false) |
2579
68ee9a89e0f0
Android: Code cleanup, fix all warnings except for unused function/parameters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2578
diff
changeset
|
6673 alert.show() |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
6674 |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
6675 // loop till a runtime exception is triggered. |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
6676 try { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
6677 Looper.loop() |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
6678 } catch (e2: RuntimeException) { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
6679 } |
2486
cec43818bd3e
Android: Implement dw_messagebox() ... seems we can't just cleanly exit().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2484
diff
changeset
|
6680 } |
cec43818bd3e
Android: Implement dw_messagebox() ... seems we can't just cleanly exit().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2484
diff
changeset
|
6681 return retval |
cec43818bd3e
Android: Implement dw_messagebox() ... seems we can't just cleanly exit().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2484
diff
changeset
|
6682 } |
cec43818bd3e
Android: Implement dw_messagebox() ... seems we can't just cleanly exit().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2484
diff
changeset
|
6683 |
2530
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
6684 fun isUIThread(): Boolean |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
6685 { |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
6686 if(Looper.getMainLooper() == Looper.myLooper()) { |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
6687 return true |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
6688 } |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
6689 return false |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
6690 } |
b9923432cb1f
Android: Implement View based render widget and icon support with Drawable.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2529
diff
changeset
|
6691 |
2514
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6692 fun mainSleep(milliseconds: Int) |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6693 { |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6694 // If we are on the main UI thread... add an idle handler |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6695 // Then loop until we throw an exception when the time expires |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6696 // in the idle handler, if we are already thrown... remove the handler |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6697 if(Looper.getMainLooper() == Looper.myLooper()) { |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6698 val starttime = System.currentTimeMillis() |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6699 |
2637
22105f99dd6a
Android: Add support for transparent background color for text drawing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2620
diff
changeset
|
6700 // Waiting for Idle to check for sleep expiration |
2514
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6701 Looper.myQueue().addIdleHandler(object : MessageQueue.IdleHandler { |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6702 var thrown: Boolean = false |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6703 |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6704 override fun queueIdle(): Boolean { |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6705 if(System.currentTimeMillis() - starttime >= milliseconds) { |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6706 if (thrown == false) { |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6707 thrown = true |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6708 throw java.lang.RuntimeException() |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6709 } |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6710 return false |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6711 } |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6712 return true |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6713 } |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6714 }) |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6715 |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6716 // loop till a runtime exception is triggered. |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6717 try { |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6718 Looper.loop() |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6719 } catch (e2: RuntimeException) { |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6720 } |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6721 } |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6722 else |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6723 { |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6724 // If we are in a different thread just sleep |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6725 Thread.sleep(milliseconds.toLong()) |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6726 } |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6727 } |
5f711e86a211
Android: Implement dw_main_sleep() and dw_main_iteration().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2510
diff
changeset
|
6728 |
2487
83f8f4f58a98
Android: Implement dw_exit() using Activity.finishActivity() instead of exit().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2486
diff
changeset
|
6729 fun dwindowsExit(exitcode: Int) |
83f8f4f58a98
Android: Implement dw_exit() using Activity.finishActivity() instead of exit().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2486
diff
changeset
|
6730 { |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
6731 waitOnUiThread { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
6732 this.finishAffinity() |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
6733 System.exit(exitcode) |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
6734 } |
2494
b3e28eed0e50
Android: Fix the basics of notebook control... return actual page IDs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2493
diff
changeset
|
6735 } |
b3e28eed0e50
Android: Fix the basics of notebook control... return actual page IDs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2493
diff
changeset
|
6736 |
b3e28eed0e50
Android: Fix the basics of notebook control... return actual page IDs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2493
diff
changeset
|
6737 fun dwindowsShutdown() |
b3e28eed0e50
Android: Fix the basics of notebook control... return actual page IDs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2493
diff
changeset
|
6738 { |
2502
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
6739 waitOnUiThread { |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
6740 this.finishAffinity() |
b6319aed3298
Android: Massive thread safety overhaul. Not quite back to fully functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2501
diff
changeset
|
6741 } |
2487
83f8f4f58a98
Android: Implement dw_exit() using Activity.finishActivity() instead of exit().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2486
diff
changeset
|
6742 } |
83f8f4f58a98
Android: Implement dw_exit() using Activity.finishActivity() instead of exit().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2486
diff
changeset
|
6743 |
2542
bb75e64e6138
Android: Implement dw_screen_* and dw_environment_query().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2539
diff
changeset
|
6744 fun dwInit(appid: String, appname: String): Int |
2522
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6745 { |
2690
755d9ad07aaf
Android: Fix state exception by calling notifyDataSetChanged() on DWListBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2689
diff
changeset
|
6746 appID = appid |
755d9ad07aaf
Android: Fix state exception by calling notifyDataSetChanged() on DWListBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2689
diff
changeset
|
6747 |
2522
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6748 waitOnUiThread { |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6749 // Create the notification channel in dw_init() |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6750 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6751 // Create the NotificationChannel |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6752 val importance = NotificationManager.IMPORTANCE_DEFAULT |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6753 val mChannel = NotificationChannel(appid, appname, importance) |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6754 // Register the channel with the system; you can't change the importance |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6755 // or other notification behaviors after this |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6756 val notificationManager = |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6757 getSystemService(NOTIFICATION_SERVICE) as NotificationManager |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6758 notificationManager.createNotificationChannel(mChannel) |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6759 } |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6760 } |
2542
bb75e64e6138
Android: Implement dw_screen_* and dw_environment_query().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2539
diff
changeset
|
6761 return Build.VERSION.SDK_INT |
bb75e64e6138
Android: Implement dw_screen_* and dw_environment_query().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2539
diff
changeset
|
6762 } |
bb75e64e6138
Android: Implement dw_screen_* and dw_environment_query().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2539
diff
changeset
|
6763 |
2543
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
6764 fun dwMain() |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
6765 { |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
6766 runOnUiThread { |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
6767 // Trigger the options menu to update when dw_main() is called |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
6768 invalidateOptionsMenu() |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
6769 } |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
6770 } |
f9367eb9a6e7
Android: Initial menu support, incomplete but basics functional.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2542
diff
changeset
|
6771 |
2542
bb75e64e6138
Android: Implement dw_screen_* and dw_environment_query().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2539
diff
changeset
|
6772 fun androidGetRelease(): String |
bb75e64e6138
Android: Implement dw_screen_* and dw_environment_query().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2539
diff
changeset
|
6773 { |
bb75e64e6138
Android: Implement dw_screen_* and dw_environment_query().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2539
diff
changeset
|
6774 return Build.VERSION.RELEASE |
2522
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6775 } |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6776 |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6777 fun notificationNew(title: String, imagepath: String, text: String, appid: String): NotificationCompat.Builder? |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6778 { |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6779 var builder: NotificationCompat.Builder? = null |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6780 |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6781 waitOnUiThread { |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6782 builder = NotificationCompat.Builder(this, appid) |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6783 .setContentTitle(title) |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6784 .setContentText(text) |
2715
e9ad53d2271b
Android: Fix Intent based file chooser and switch to using it by default.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2714
diff
changeset
|
6785 .setSmallIcon(R.mipmap.sym_def_app_icon) |
2522
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6786 .setPriority(NotificationCompat.PRIORITY_DEFAULT) |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6787 } |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6788 return builder |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6789 } |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6790 |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6791 fun notificationSend(builder: NotificationCompat.Builder) |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6792 { |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6793 waitOnUiThread { |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6794 notificationID += 1 |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6795 with(NotificationManagerCompat.from(this)) { |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6796 // notificationId is a unique int for each notification that you must define |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6797 notify(notificationID, builder.build()) |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6798 } |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6799 } |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6800 } |
66c490aa719d
Android: Implement notifications, images on notifications incomplete.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2521
diff
changeset
|
6801 |
2475
16d195d46f2a
Android: Implement dw_window_new(), dw_box_new() and dw_box_pack().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2474
diff
changeset
|
6802 /* |
2474
a13e6db064f4
Android: Implement thread, semaphore, shared memory API functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2473
diff
changeset
|
6803 * Native methods that are implemented by the 'dwindows' native library, |
2473
aa420e366b2b
Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6804 * which is packaged with this application. |
aa420e366b2b
Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6805 */ |
2658
ad6fc7f1a9af
Android: Asset/Resource refactoring for compatibility with other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2656
diff
changeset
|
6806 external fun dwindowsInit(dataDir: String, cacheDir: String, appid: String) |
2495
5664c91d03fb
Android: Attempts to sort out the various issues... still not working but...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2494
diff
changeset
|
6807 external fun eventHandler( |
2499
ff3310fa6d72
Android: Implment DW_SIGNA_CONFIGURE on orientation change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2498
diff
changeset
|
6808 obj1: View?, |
2495
5664c91d03fb
Android: Attempts to sort out the various issues... still not working but...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2494
diff
changeset
|
6809 obj2: View?, |
5664c91d03fb
Android: Attempts to sort out the various issues... still not working but...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2494
diff
changeset
|
6810 message: Int, |
5664c91d03fb
Android: Attempts to sort out the various issues... still not working but...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2494
diff
changeset
|
6811 str1: String?, |
5664c91d03fb
Android: Attempts to sort out the various issues... still not working but...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2494
diff
changeset
|
6812 str2: String?, |
2499
ff3310fa6d72
Android: Implment DW_SIGNA_CONFIGURE on orientation change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2498
diff
changeset
|
6813 inta: Int, |
ff3310fa6d72
Android: Implment DW_SIGNA_CONFIGURE on orientation change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2498
diff
changeset
|
6814 intb: Int, |
ff3310fa6d72
Android: Implment DW_SIGNA_CONFIGURE on orientation change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2498
diff
changeset
|
6815 intc: Int, |
ff3310fa6d72
Android: Implment DW_SIGNA_CONFIGURE on orientation change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2498
diff
changeset
|
6816 intd: Int |
2495
5664c91d03fb
Android: Attempts to sort out the various issues... still not working but...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2494
diff
changeset
|
6817 ): Int |
2499
ff3310fa6d72
Android: Implment DW_SIGNA_CONFIGURE on orientation change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2498
diff
changeset
|
6818 external fun eventHandlerInt( |
ff3310fa6d72
Android: Implment DW_SIGNA_CONFIGURE on orientation change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2498
diff
changeset
|
6819 obj1: View, |
ff3310fa6d72
Android: Implment DW_SIGNA_CONFIGURE on orientation change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2498
diff
changeset
|
6820 message: Int, |
ff3310fa6d72
Android: Implment DW_SIGNA_CONFIGURE on orientation change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2498
diff
changeset
|
6821 inta: Int, |
ff3310fa6d72
Android: Implment DW_SIGNA_CONFIGURE on orientation change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2498
diff
changeset
|
6822 intb: Int, |
ff3310fa6d72
Android: Implment DW_SIGNA_CONFIGURE on orientation change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2498
diff
changeset
|
6823 intc: Int, |
ff3310fa6d72
Android: Implment DW_SIGNA_CONFIGURE on orientation change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2498
diff
changeset
|
6824 intd: Int |
ff3310fa6d72
Android: Implment DW_SIGNA_CONFIGURE on orientation change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2498
diff
changeset
|
6825 ) |
2483
9f7af6d8c6a4
Android: Fix signal handlers so they actually work.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2482
diff
changeset
|
6826 external fun eventHandlerSimple(obj1: View, message: Int) |
2495
5664c91d03fb
Android: Attempts to sort out the various issues... still not working but...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2494
diff
changeset
|
6827 external fun eventHandlerNotebook(obj1: View, message: Int, pageID: Long) |
2490
62e124eecd82
Android: Implement timers and beep. Some general code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2489
diff
changeset
|
6828 external fun eventHandlerTimer(sigfunc: Long, data: Long): Int |
2501
41984ffb5ca2
Android: Initial implement of HTML control with WebView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2500
diff
changeset
|
6829 external fun eventHandlerHTMLResult(obj1: View, message: Int, result: String, data: Long) |
2560
3da35cd91ca7
Android: Implement querying containers and ENTER and CONTEXT callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2558
diff
changeset
|
6830 external fun eventHandlerContainer(obj1: View, message: Int, title: String?, x: Int, y: Int, data: Long) |
2785
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
6831 external fun eventHandlerTree(obj1: View, message: Int, item: DWTreeItem?, title: String?, data: Long) |
220d63da2183
Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2784
diff
changeset
|
6832 external fun eventHandlerTreeItem(obj1: View, message: Int, item: DWTreeItem?) |
2596
60ec91d23746
Android: Add initial keyboard support for Android.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2595
diff
changeset
|
6833 external fun eventHandlerKey(obj1: View, message: Int, character: Int, vk: Int, modifiers: Int, str: String) |
2473
aa420e366b2b
Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6834 |
2474
a13e6db064f4
Android: Implement thread, semaphore, shared memory API functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2473
diff
changeset
|
6835 companion object |
a13e6db064f4
Android: Implement thread, semaphore, shared memory API functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2473
diff
changeset
|
6836 { |
2473
aa420e366b2b
Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6837 // Used to load the 'dwindows' library on application startup. |
2474
a13e6db064f4
Android: Implement thread, semaphore, shared memory API functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2473
diff
changeset
|
6838 init |
a13e6db064f4
Android: Implement thread, semaphore, shared memory API functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2473
diff
changeset
|
6839 { |
2473
aa420e366b2b
Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6840 System.loadLibrary("dwindows") |
aa420e366b2b
Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6841 } |
aa420e366b2b
Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6842 } |
aa420e366b2b
Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6843 } |