Commit Graph

15 Commits

Author SHA1 Message Date
Julian Winkler
efa61afc71 implement View.OnLongClickListener as GtkGestureLongPress 2024-02-27 22:02:36 +01:00
Julian Winkler
8dafa41ea9 implement View.onInterceptTouchEvent() callback
This is needed to support nested scrolling

A second GtkEventControllerLegacy gets registerd with GTK_PHASE_CAPTURE
2024-02-25 18:18:45 +01:00
Julian Winkler
8c7dbf6ceb start implementing Drawable using underlying GdkPaintable 2023-12-30 23:38:48 +01:00
Julian Winkler
bff62a6e77 View: implement visibility and alpha properly 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
6ef1e523cc View: relayout on visibility changes 2023-11-08 22:44:39 +01:00
Mis012
d483828236 android/view/View: naive implementation for setBackgroundColor 2023-10-30 17:28:38 +01:00
Julian Winkler
37d9b13470 View.onMeasure: handle MEASURE_SPEC_AT_MOST properly
We decide between simple widgets which handles MEASURE_SPEC_AT_MOST the same way as
MEASURE_SPEC_EXACTLY, and complex widgets which handles MEASURE_SPEC_AT_MOST by measuring the content
2023-10-14 10:01:01 +00:00
Julian Winkler
255eed3e59 setLayoutParams(): better match Androids behaviour
View.setGravity() specifies gravity of children, not of the view itself
LayoutParams.weight > 0 should cause expansion of widget
2023-09-08 20:10:45 +02:00
Julian Winkler
ca975a0e7c add support for ViewGroups with custom onLayout()
A custom GtkLayoutManager is set to these objects, which calls into the
java handlers when measure or layout is requested.

Androids onMeasure method is quite different from GTKs measure method,
because Android already defines the final size during onMeasure.
Therefore, we call onMeasure from GTKs allocate callback instead of the
measure callback.
2023-08-23 12:39:10 +02:00
Julian Winkler
36b6132324 fix reference counting for GtkWidgets created from java
GtkWidgets extend GInitiallyUnowned and are automatically freed when
removing from parent widget. We need to add an extra reference, to make
sure the object keeps alive as long as the java widget has a reference
to it
2023-08-23 11:47:05 +02:00
Julian Winkler
4d90002ec6 Simplify native interface of widget implementations
Makes it easier to overwrite behavior in subclasses. Have a fallback
implementation for ViewGroup.
Save some _GET_LONG_FIELD / _SET_LONG_FIELD calls by directly passing
the native pointers to and from native methods.
2023-08-22 15:53:09 +02:00
Mis012
4a1159f5cb api-impl: add misc stubs 2023-08-12 13:09:33 +02:00
Julian Winkler
520569f7c7 implement View.invalidate() 2023-08-08 13:35:47 +02:00
Mis012
449090143e refactor source tree organization, switch to meson 2022-10-09 22:59:16 +02:00