Julian Winkler
3486d59e81
ListView: observe dataset changes
2024-02-18 10:08:44 +01:00
Julian Winkler
9c684ee906
implement PopupWindow using GtkPopover
2024-02-18 10:08:43 +01:00
Julian Winkler
b9b28619dd
AdapterView: implement setAdapter / getAdapter() properly
2024-02-18 10:08:43 +01:00
Julian Winkler
2d6694d695
implement CompoundButton using GtkSwitch
2024-02-16 20:46:55 +01:00
Julian Winkler
3aed86b83a
implement ListView using GtkListView
...
There is not much difference between GTKs ListView and Androids
ListView. So, we use GTKs implementation instead of copying from AOSP
2024-02-16 15:28:04 +01:00
Julian Winkler
e2ff23080c
TextView: enable tabular numbers by default
...
Some apps like Gravity Defied expect the default font to have monospaced
numbers
2024-02-10 10:28:48 +01:00
Julian Winkler
88254d822f
replace LinearLayout with AOSPs implementation
...
Also update QuickHelp.md, as LinearLayout was the last custom
implemented ViewGroup
2024-02-10 10:28:48 +01:00
Julian Winkler
6eeb6b0232
move performClick implementation to WrapperWidget
2024-02-10 10:28:48 +01:00
Mis012
b40a76fcfb
api-impl-jni: fix CheckJNI error for View.onClick
2024-01-29 00:37:32 +01:00
Julian Winkler
bf3f595a8c
LinearLayout: set GtkBox to homogeneous if all child weights are equal
...
Real weighted allocation is not supported by GtkBox
2024-01-01 12:11:31 +01:00
Julian Winkler
c5b315cb38
LinearLayout: remove 1px spacing
2024-01-01 12:10:45 +01:00
Julian Winkler
790255f9ca
ImageView: allow non bitmap Drawables
...
Also pass size of child paintable in DrawableContainer
2023-12-30 23:38:56 +01:00
Julian Winkler
8c7dbf6ceb
start implementing Drawable using underlying GdkPaintable
2023-12-30 23:38:48 +01:00
Julian Winkler
0614e6c245
add some stubs needed since we now handle onMeasure() for more Views
2023-12-29 11:40:52 +01:00
Julian Winkler
b0fdf53f9b
implement android.widget.ProgressBar using GtkProgressBar
2023-11-12 12:16:23 +01:00
Julian Winkler
c0804c3329
WrapperWidget: overwrite measured size if layout size is fixed
2023-11-12 12:16:23 +01:00
Julian Winkler
d025fd3ce3
FrameLayout: replace with AOSPs implementation
...
There are many Widgets extending FrameLayout and adding custom behaviour
on top. For example NavigationView. This didn't realy work with our
custom implementation
2023-11-08 22:44:39 +01:00
Julian Winkler
bcfb384ba4
implement EditText.setOnEditorActionListener()
...
This makes the NewPipe search work again
2023-11-08 22:44:39 +01:00
Julian Winkler
7bb5a1e33a
computeScroll: move the allocation instead of only the snapshot
2023-11-04 23:32:29 +01:00
Julian Winkler
4bce3544dd
WrapperWidget: handle View.computeScroll()
...
Currently the scrolling is purely visual.
2023-11-02 23:30:21 +01:00
Julian Winkler
0a8b8a3874
use AndroidLayout class also in View implementation
...
drop the onMeasure hack from WrapperWidget
2023-11-02 08:20:19 +01:00
Mis012
065fd96308
api-impl-jni: make invalidate() work inside the draw callback
...
this lets us remove the tick callback, and only call onDraw
when it's actually necessary
2023-10-31 23:14:52 +01:00
Julian Winkler
e23516ee43
fix invalid cast warning when calling setTextColor() on EditText
...
the implementation works fine for all kind of GtkWidgets no need to cast
to GtkLabel class
2023-10-29 15:28:06 +01:00
Julian Winkler
a2381f4721
fix compiler warnings in WrapperWidget and View
2023-10-29 15:23:11 +01:00
Mis012
9ef2151c5e
GLSurfaceView: remove old implementation, import the one from AOSP
...
Now that we have a reasonably well working SurfaceView implementation,
it is actually cleaner to just implement GLSurfaceView the way AOSP
does. In fact, their code doesn't have any weird dependencies, and
can mostly be used as-is.
The AOSP code is pure Java, which means we had to implement some
EGL wrappers.
This change fixes issues with Wayland (it only ever worked because
the pbuffers were allocated using an XWayland EGLDisplay), and
with resizing (which we simply didn't support), all while getting
rid of quite some (arguably not very readable) LoC.
2023-10-20 20:54:37 +02:00