Skip to content

Commit

Permalink
Add rtl property to other controls (#2582)
Browse files Browse the repository at this point in the history
* _directionality

* rtl

* Column.rtl

* Container.rtl

* Row.rtl

* ResponsiveRow.rtl

* Control.rtl

* Inherit Control.rtl
  • Loading branch information
ndonkoHenri committed Feb 9, 2024
1 parent bf7ea14 commit 946a2fd
Show file tree
Hide file tree
Showing 11 changed files with 42 additions and 17 deletions.
16 changes: 13 additions & 3 deletions package/lib/src/controls/create_control.dart
Original file line number Diff line number Diff line change
Expand Up @@ -910,8 +910,12 @@ Widget constrainedControl(
_rotatedControl(
context,
_sizedControl(
_tooltip(
_opacity(context, widget, parent, control),
_directionality(
_tooltip(
_opacity(
context, widget, parent, control),
parent,
control),
parent,
control),
parent,
Expand Down Expand Up @@ -1131,7 +1135,6 @@ Widget _expandable(Widget widget, Control? parent, Control control) {
(parent.type == "view" ||
parent.type == "column" ||
parent.type == "row")) {
//debugPrint("Expandable ${control.id}");
int? expand = control.attrInt("expand");
var expandLoose = control.attrBool("expandLoose");
return expand != null
Expand All @@ -1142,3 +1145,10 @@ Widget _expandable(Widget widget, Control? parent, Control control) {
}
return widget;
}

Widget _directionality(Widget widget, Control? parent, Control control) {
bool rtl = control.attrBool("rtl", false)!;
return rtl
? Directionality(textDirection: TextDirection.rtl, child: widget)
: widget;
}
2 changes: 0 additions & 2 deletions package/lib/src/controls/textfield.dart
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,6 @@ class _TextFieldControlState extends State<TextFieldControl>
double? textVerticalAlign =
widget.control.attrDouble("textVerticalAlign");

bool rtl = widget.control.attrBool("rtl", false)!;
bool autocorrect = widget.control.attrBool("autocorrect", true)!;
bool enableSuggestions =
widget.control.attrBool("enableSuggestions", true)!;
Expand Down Expand Up @@ -247,7 +246,6 @@ class _TextFieldControlState extends State<TextFieldControl>
textAlignVertical: textVerticalAlign != null
? TextAlignVertical(y: textVerticalAlign)
: null,
textDirection: rtl ? TextDirection.rtl : null,
cursorHeight: widget.control.attrDouble("cursorHeight"),
cursorWidth: widget.control.attrDouble("cursorWidth") ?? 2.0,
cursorRadius: parseRadius(widget.control, "cursorRadius"),
Expand Down
2 changes: 2 additions & 0 deletions sdk/python/packages/flet-core/src/flet_core/column.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ def __init__(
visible: Optional[bool] = None,
disabled: Optional[bool] = None,
data: Any = None,
rtl: Optional[bool] = None,
#
# ScrollableControl specific
#
Expand Down Expand Up @@ -133,6 +134,7 @@ def __init__(
visible=visible,
disabled=disabled,
data=data,
rtl=rtl,
)

ScrollableControl.__init__(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ def __init__(
visible: Optional[bool] = None,
disabled: Optional[bool] = None,
data: Any = None,
rtl: Optional[bool] = None,
#
# ConstrainedControl specific
#
Expand Down Expand Up @@ -56,6 +57,7 @@ def __init__(
visible=visible,
disabled=disabled,
data=data,
rtl=rtl,
)

self.key = key
Expand Down
2 changes: 2 additions & 0 deletions sdk/python/packages/flet-core/src/flet_core/container.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ def __init__(
visible: Optional[bool] = None,
disabled: Optional[bool] = None,
data: Any = None,
rtl: Optional[bool] = None,
#
# Specific
#
Expand Down Expand Up @@ -157,6 +158,7 @@ def __init__(
visible=visible,
disabled=disabled,
data=data,
rtl=rtl,
)

AdaptiveControl.__init__(self, adaptive=adaptive)
Expand Down
11 changes: 11 additions & 0 deletions sdk/python/packages/flet-core/src/flet_core/control.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ def __init__(
visible: Optional[bool] = None,
disabled: Optional[bool] = None,
data: Any = None,
rtl: Optional[bool] = None,
):
super().__init__()
self.__page: Optional[Page] = None
Expand All @@ -45,6 +46,7 @@ def __init__(
self.opacity = opacity
self.tooltip = tooltip
self.visible = visible
self.rtl = rtl
self.disabled = disabled
self.__data: Any = None
self.data = data
Expand Down Expand Up @@ -225,6 +227,15 @@ def expand_loose(self) -> Optional[bool]:
def expand_loose(self, value: Optional[bool]):
self._set_attr("expandLoose", value)

# rtl
@property
def rtl(self) -> Optional[bool]:
return self._get_attr("rtl", data_type="bool", def_value=False)

@rtl.setter
def rtl(self, value: Optional[bool]):
self._set_attr("rtl", value)

# col
@property
def col(self) -> Optional[ResponsiveNumber]:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ def __init__(
visible: Optional[bool] = None,
disabled: Optional[bool] = None,
data: Any = None,
rtl: Optional[bool] = None,
#
# FormField specific
#
Expand Down Expand Up @@ -128,6 +129,7 @@ def __init__(
visible=visible,
disabled=disabled,
data=data,
rtl=rtl,
)

self.text_size = text_size
Expand Down
2 changes: 2 additions & 0 deletions sdk/python/packages/flet-core/src/flet_core/responsive_row.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ def __init__(
visible: Optional[bool] = None,
disabled: Optional[bool] = None,
data: Any = None,
rtl: Optional[bool] = None,
#
# Row specific
#
Expand Down Expand Up @@ -119,6 +120,7 @@ def __init__(
visible=visible,
disabled=disabled,
data=data,
rtl=rtl,
)

AdaptiveControl.__init__(self, adaptive=adaptive)
Expand Down
2 changes: 2 additions & 0 deletions sdk/python/packages/flet-core/src/flet_core/row.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ def __init__(
visible: Optional[bool] = None,
disabled: Optional[bool] = None,
data: Any = None,
rtl: Optional[bool] = None,
#
# ScrollableControl specific
#
Expand Down Expand Up @@ -136,6 +137,7 @@ def __init__(
visible=visible,
disabled=disabled,
data=data,
rtl=rtl,
)

ScrollableControl.__init__(
Expand Down
2 changes: 2 additions & 0 deletions sdk/python/packages/flet-core/src/flet_core/text.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ def __init__(
visible: Optional[bool] = None,
disabled: Optional[bool] = None,
data: Any = None,
rtl: Optional[bool] = None,
#
# text-specific
#
Expand Down Expand Up @@ -161,6 +162,7 @@ def __init__(
visible=visible,
disabled=disabled,
data=data,
rtl=rtl,
)

self.value = value
Expand Down
16 changes: 4 additions & 12 deletions sdk/python/packages/flet-core/src/flet_core/textfield.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import dataclasses
import time
from dataclasses import field
from enum import Enum
from typing import Any, Optional, Union

import time

from flet_core.adaptive_control import AdaptiveControl
from flet_core.control import Control, OptionalNumber
from flet_core.form_field_control import FormFieldControl, InputBorder
Expand Down Expand Up @@ -138,6 +139,7 @@ def __init__(
visible: Optional[bool] = None,
disabled: Optional[bool] = None,
data: Any = None,
rtl: Optional[bool] = None,
#
# FormField specific
#
Expand Down Expand Up @@ -182,7 +184,6 @@ def __init__(
value: Optional[str] = None,
adaptive: Optional[bool] = None,
keyboard_type: Optional[KeyboardType] = None,
rtl: Optional[bool] = None,
multiline: Optional[bool] = None,
min_lines: Optional[int] = None,
max_lines: Optional[int] = None,
Expand Down Expand Up @@ -235,6 +236,7 @@ def __init__(
visible=visible,
disabled=disabled,
data=data,
rtl=rtl,
#
# FormField
#
Expand Down Expand Up @@ -281,7 +283,6 @@ def __init__(
self.text_style = text_style
self.keyboard_type = keyboard_type
self.text_align = text_align
self.rtl = rtl
self.multiline = multiline
self.min_lines = min_lines
self.max_lines = max_lines
Expand Down Expand Up @@ -362,15 +363,6 @@ def text_align(self, value: TextAlign):
"textAlign", value.value if isinstance(value, TextAlign) else value
)

# rtl
@property
def rtl(self) -> Optional[bool]:
return self._get_attr("rtl", data_type="bool", def_value=False)

@rtl.setter
def rtl(self, value: Optional[bool]):
self._set_attr("rtl", value)

# multiline
@property
def multiline(self) -> Optional[bool]:
Expand Down

0 comments on commit 946a2fd

Please sign in to comment.