Commit Graph

131 Commits

Author SHA1 Message Date
Julian Winkler
176405ed45 NinePatchPaintable: new GdkPaintable class to render .9.png files 2023-12-30 23:38:56 +01:00
Julian Winkler
ca3c17d773 implement DrawableContainer and copy StateListDrawable from AOSP 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
1b03fa6e1a merge View and ViewGroup constructor
Introduce empy JavaWidget to replace confusing usage of GtkBox and GtkDrawingArea.
gtk_widget_set_name() is called with the Java class name
2023-12-29 12:16:10 +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
757d689689 unify View construction and measurement
No longer allow constructing Views without Context.
Lets have only one onMeasure() method to unify behaviour
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
987058f55d implement AudioTrack.pause() 2023-11-12 12:16:23 +01:00
Julian Winkler
bff62a6e77 View: implement visibility and alpha properly 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
36d7a1cc44 support layout margins
This makes the menu in Gravity Defied not get behind the keyboard.
Also makes the TabLayout in NewPipe not get behing the titlebar.
2023-11-12 12:16:23 +01:00
Julian Winkler
72a8b3a047 add more stubs 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
6ef1e523cc View: relayout on visibility changes 2023-11-08 22:44:39 +01:00
Julian Winkler
ac5a547360 AndroidLayout: provide default width and height
setLayoutParams()  will never be called on the contentView of the
Window. So make sure we have default values
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
585d934483 View: use gdk_event_get_modifier_state() for onTouch handling
previous implementation did not update num_clicks, when the
mouse was released outside the widget
2023-11-04 23:31:40 +01:00
Julian Winkler
29e88b08d8 AndroidLayout: ignore exceptions during measure
This fixes a crash with the Flower Finder test apk, where
ActionBarContextView doesn't allow MEASURE_SPEC_UNSPECIFIED
2023-11-04 08:49:58 +01:00
Julian Winkler
5813f9741d AndroidLayout: implement get_request_mode
Also add stubs in Matrix and Paint class
2023-11-04 08:49:58 +01:00
Julian Winkler
385f6dcf0b android_layout_measure: reuse old MeasureSpec for missing dimension
This should fix the SurfaceView in NewPipe not resizing automatically
2023-11-04 08:49:58 +01:00
Mis012
837ad31c3f api-impl-jni/media/android_media_MediaCodec.c: resize the viewport in sync with the dummy widget 2023-11-03 23:21:43 +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
Julian Winkler
3c03223085 android_layout_measure(): refactor to respect LayoutParams
This is needed when a Java widget gets measured from GTK
2023-11-02 08:20:13 +01:00