mirror of
https://github.com/RYDE-WORK/ballistica.git
synced 2026-01-26 17:03:14 +08:00
Made the Gather UI a bit more compact on small/medium screens
This commit is contained in:
parent
2b59186d91
commit
752999da85
@ -3932,24 +3932,24 @@
|
||||
"assets/build/windows/Win32/ucrtbased.dll": "https://files.ballistica.net/cache/ba1/b5/85/f8b6d0558ddb87267f34254b1450",
|
||||
"assets/build/windows/Win32/vc_redist.x86.exe": "https://files.ballistica.net/cache/ba1/1c/e1/4a1a2eddda2f4aebd5f8b64ab08e",
|
||||
"assets/build/windows/Win32/vcruntime140d.dll": "https://files.ballistica.net/cache/ba1/50/8d/bc2600ac9491f1b14d659709451f",
|
||||
"build/prefab/full/linux_x86_64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/5a/0e/c0d740728ec6a91c4058db0de580",
|
||||
"build/prefab/full/linux_x86_64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/b2/5e/fd7b9b92e62dd673b3f0b8bde257",
|
||||
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/1c/cf/0bcbafccaf1e7cc3e7f2e0fb1a51",
|
||||
"build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/39/82/ed8272b0ef178a7d625227729b93",
|
||||
"build/prefab/full/mac_x86_64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/1b/34/79ba915806f7984d2821c16e61aa",
|
||||
"build/prefab/full/mac_x86_64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/0d/80/f7277f55432bb4685f0605169d16",
|
||||
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/9c/d2/f2d25f1ede5d806a553ce1da129a",
|
||||
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/1b/42/b968b868eedd97b7be64a1728bfe",
|
||||
"build/prefab/full/windows_x86/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/79/99/e8fa8f51f33ca94705a4eca05673",
|
||||
"build/prefab/full/windows_x86/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/2d/dd/3deb44f89955ba8ffdd9ff1fec30",
|
||||
"build/prefab/full/windows_x86_server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/cb/57/dd199c247cbd2a9651da09eaafcf",
|
||||
"build/prefab/full/windows_x86_server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/85/a7/968e92f45eb512b0a6546fe64157",
|
||||
"build/prefab/full/linux_x86_64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/5d/5f/7e353ad61a992fd31b1c27918e89",
|
||||
"build/prefab/full/linux_x86_64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/61/77/65d2fd041d9f8fea8d7e4733a5ec",
|
||||
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/70/6c/a1111ede41bda66b5c4dda4162cb",
|
||||
"build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/f6/24/3d45f90a537c7f19496b8dd8101c",
|
||||
"build/prefab/full/mac_x86_64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/01/b9/a4862fd7ac4b9bc46109bf0f3fb5",
|
||||
"build/prefab/full/mac_x86_64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/70/58/4b5840cd26a0853197fa63c39f26",
|
||||
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/93/de/4dc052ed052de5353044adaf3b56",
|
||||
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/f9/5c/69ff3f14bb37bd82956088c16872",
|
||||
"build/prefab/full/windows_x86/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/5c/4d/acecaaafada62747b7beb884348b",
|
||||
"build/prefab/full/windows_x86/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/08/81/f3cfc8bb76bc05b0ee53ccd47b67",
|
||||
"build/prefab/full/windows_x86_server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/45/9b/635f9392ba5c0561949e519ec8c3",
|
||||
"build/prefab/full/windows_x86_server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/5f/f2/4136816295eca8ffefabc60a8b6e",
|
||||
"build/prefab/lib/linux_x86_64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/80/d2/d1c6766cf07f4c4828bbd5899f79",
|
||||
"build/prefab/lib/linux_x86_64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/de/49/2cfc34ac856737d903954db5571b",
|
||||
"build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/17/9a/fa66aafdf31fc9bdd92ce382c619",
|
||||
"build/prefab/lib/linux_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/86/de/7d9c9a2b7bba34c630130ed759c9",
|
||||
"build/prefab/lib/mac_x86_64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/de/16/c12809a8a4754329e6da3c1586ec",
|
||||
"build/prefab/lib/mac_x86_64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/71/51/edcfb82938dcd3410f2d31547db6",
|
||||
"build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/73/77/b5c1338380f41d341a799921fe69",
|
||||
"build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/0d/5c/c180e7a4d28600125e8dc2b1fbcc"
|
||||
"build/prefab/lib/mac_x86_64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/43/1d/ee9ee9bf897787f0b469853bb426",
|
||||
"build/prefab/lib/mac_x86_64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/98/d2/7a106e580aa03db5c9f91ccd8bc8",
|
||||
"build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/38/28/2cbd3a1eeec91e71ff8f4a048d73",
|
||||
"build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/25/4d/c9b30b84774de5ee5eed1927d6b1"
|
||||
}
|
||||
@ -3388,7 +3388,8 @@ def scrollwidget(edit: ba.Widget = None,
|
||||
simple_culling_v: float = None,
|
||||
selection_loops_to_parent: bool = None,
|
||||
claims_left_right: bool = None,
|
||||
claims_tab: bool = None) -> ba.Widget:
|
||||
claims_tab: bool = None,
|
||||
autoselect: bool = None) -> ba.Widget:
|
||||
"""scrollwidget(edit: ba.Widget = None, parent: ba.Widget = None,
|
||||
size: Sequence[float] = None, position: Sequence[float] = None,
|
||||
background: bool = None, selected_child: ba.Widget = None,
|
||||
@ -3398,7 +3399,8 @@ def scrollwidget(edit: ba.Widget = None,
|
||||
simple_culling_v: float = None,
|
||||
selection_loops_to_parent: bool = None,
|
||||
claims_left_right: bool = None,
|
||||
claims_tab: bool = None) -> ba.Widget
|
||||
claims_tab: bool = None,
|
||||
autoselect: bool = None) -> ba.Widget
|
||||
|
||||
Create or edit a scroll widget.
|
||||
|
||||
|
||||
@ -89,11 +89,16 @@ class GatherWindow(ba.Window):
|
||||
size=(60, 60),
|
||||
label=ba.charstr(ba.SpecialChar.BACK))
|
||||
|
||||
condensed = uiscale is not ba.UIScale.LARGE
|
||||
t_offs_y = (0 if not condensed else
|
||||
25 if uiscale is ba.UIScale.MEDIUM else 17)
|
||||
ba.textwidget(parent=self._root_widget,
|
||||
position=(self._width * 0.5, self._height - 42),
|
||||
position=(self._width * 0.5,
|
||||
self._height - 42 + t_offs_y),
|
||||
size=(0, 0),
|
||||
color=ba.app.ui.title_color,
|
||||
scale=1.5,
|
||||
scale=(1.5 if not condensed else
|
||||
1.0 if uiscale is ba.UIScale.MEDIUM else 0.6),
|
||||
h_align='center',
|
||||
v_align='center',
|
||||
text=ba.Lstr(resource=self._r + '.titleText'),
|
||||
@ -103,7 +108,7 @@ class GatherWindow(ba.Window):
|
||||
subplatform = ba.app.subplatform
|
||||
|
||||
scroll_buffer_h = 130 + 2 * x_offs
|
||||
tab_buffer_h = 250 + 2 * x_offs
|
||||
tab_buffer_h = ((320 if condensed else 250) + 2 * x_offs)
|
||||
|
||||
# Build up the set of tabs we want.
|
||||
tabdefs: List[Tuple[GatherWindow.TabID, ba.Lstr]] = [
|
||||
@ -120,9 +125,13 @@ class GatherWindow(ba.Window):
|
||||
tabdefs.append(
|
||||
(self.TabID.MANUAL, ba.Lstr(resource=self._r + '.manualText')))
|
||||
|
||||
# On small UI, push our tabs up closer to the top of the screen to
|
||||
# save a bit of space.
|
||||
tabs_top_extra = 42 if condensed else 0
|
||||
self._tab_row = TabRow(self._root_widget,
|
||||
tabdefs,
|
||||
pos=(tab_buffer_h * 0.5, self._height - 130),
|
||||
pos=(tab_buffer_h * 0.5,
|
||||
self._height - 130 + tabs_top_extra),
|
||||
size=(self._width - tab_buffer_h, 50),
|
||||
on_select_call=self._set_tab)
|
||||
|
||||
@ -148,10 +157,11 @@ class GatherWindow(ba.Window):
|
||||
left_widget=_ba.get_special_widget('back_button'))
|
||||
|
||||
self._scroll_width = self._width - scroll_buffer_h
|
||||
self._scroll_height = self._height - 180.0
|
||||
self._scroll_height = self._height - 180.0 + tabs_top_extra
|
||||
|
||||
self._scroll_left = (self._width - self._scroll_width) * 0.5
|
||||
self._scroll_bottom = self._height - self._scroll_height - 79 - 48
|
||||
self._scroll_bottom = (self._height - self._scroll_height - 79 - 48 +
|
||||
tabs_top_extra)
|
||||
buffer_h = 10
|
||||
buffer_v = 4
|
||||
|
||||
|
||||
@ -31,11 +31,11 @@ class AboutGatherTab(GatherTab):
|
||||
region_left: float,
|
||||
region_bottom: float,
|
||||
) -> ba.Widget:
|
||||
message = ba.Lstr(resource='gatherWindow.aboutDescriptionText',
|
||||
subs=[('${PARTY}',
|
||||
ba.charstr(ba.SpecialChar.PARTY_ICON)),
|
||||
('${BUTTON}',
|
||||
ba.charstr(ba.SpecialChar.TOP_BUTTON))])
|
||||
message = ba.Lstr(
|
||||
resource='gatherWindow.aboutDescriptionText',
|
||||
subs=[('${PARTY}', ba.charstr(ba.SpecialChar.PARTY_ICON)),
|
||||
('${BUTTON}', ba.charstr(ba.SpecialChar.TOP_BUTTON))],
|
||||
)
|
||||
|
||||
# Let's not talk about sharing in vr-mode; its tricky to fit more
|
||||
# than one head in a VR-headset ;-)
|
||||
|
||||
@ -179,10 +179,10 @@ class PublicGatherTab(GatherTab):
|
||||
self._join_text: Optional[ba.Widget] = None
|
||||
self._host_text: Optional[ba.Widget] = None
|
||||
self._local_address: Optional[str] = None
|
||||
self._last_public_party_connect_attempt_time: Optional[float] = None
|
||||
self._last_connect_attempt_time: Optional[float] = None
|
||||
self._sub_tab: SubTabType = SubTabType.JOIN
|
||||
self._selection: Optional[Selection] = None
|
||||
self._refreshing_public_party_list = False
|
||||
self._refreshing_list = False
|
||||
self._update_timer: Optional[ba.Timer] = None
|
||||
self._host_scrollwidget: Optional[ba.Widget] = None
|
||||
self._host_name_text: Optional[ba.Widget] = None
|
||||
@ -195,9 +195,9 @@ class PublicGatherTab(GatherTab):
|
||||
self._host_max_party_size_plus_button: (Optional[ba.Widget]) = None
|
||||
self._host_status_text: Optional[ba.Widget] = None
|
||||
self._public_parties: Dict[str, PartyEntry] = {}
|
||||
self._last_public_party_list_rebuild_time: Optional[float] = None
|
||||
self._first_public_party_list_rebuild_time: Optional[float] = None
|
||||
self._next_public_party_entry_index = 0
|
||||
self._last_list_rebuild_time: Optional[float] = None
|
||||
self._first_list_rebuild_time: Optional[float] = None
|
||||
self._next_entry_index = 0
|
||||
|
||||
def on_activate(
|
||||
self,
|
||||
@ -329,7 +329,7 @@ class PublicGatherTab(GatherTab):
|
||||
edit=self._host_text,
|
||||
color=active_color if value is SubTabType.HOST else inactive_color)
|
||||
|
||||
# Clear anything in existence in our sub-tabs.
|
||||
# Clear anything existing in the old sub-tab.
|
||||
for widget in self._container.get_children():
|
||||
if widget and widget not in {self._host_text, self._join_text}:
|
||||
widget.delete()
|
||||
@ -356,8 +356,8 @@ class PublicGatherTab(GatherTab):
|
||||
|
||||
# Reset our list of public parties.
|
||||
self._public_parties = {}
|
||||
self._last_public_party_list_rebuild_time = 0
|
||||
self._first_public_party_list_rebuild_time = None
|
||||
self._last_list_rebuild_time = 0
|
||||
self._first_list_rebuild_time = None
|
||||
ba.textwidget(text=ba.Lstr(resource='nameText'),
|
||||
parent=self._container,
|
||||
size=(0, 0),
|
||||
@ -397,13 +397,13 @@ class PublicGatherTab(GatherTab):
|
||||
parent=self._container,
|
||||
simple_culling_v=10,
|
||||
position=((c_width - sub_scroll_width) * 0.5, v),
|
||||
size=(sub_scroll_width, sub_scroll_height))
|
||||
ba.widget(edit=scrollw, autoselect=True)
|
||||
colw = self._host_columnwidget = ba.containerwidget(parent=scrollw,
|
||||
background=False,
|
||||
size=(400, 400))
|
||||
ba.containerwidget(edit=scrollw, claims_left_right=True)
|
||||
ba.containerwidget(edit=colw, claims_left_right=True)
|
||||
size=(sub_scroll_width, sub_scroll_height),
|
||||
claims_left_right=True,
|
||||
autoselect=True)
|
||||
self._host_columnwidget = ba.containerwidget(parent=scrollw,
|
||||
background=False,
|
||||
size=(400, 400),
|
||||
claims_left_right=True)
|
||||
|
||||
self._join_status_text = ba.textwidget(
|
||||
parent=self._container,
|
||||
@ -550,18 +550,18 @@ class PublicGatherTab(GatherTab):
|
||||
# pylint: disable=too-many-locals
|
||||
# pylint: disable=too-many-statements
|
||||
cur_time = ba.time(ba.TimeType.REAL)
|
||||
if self._first_public_party_list_rebuild_time is None:
|
||||
self._first_public_party_list_rebuild_time = cur_time
|
||||
if self._first_list_rebuild_time is None:
|
||||
self._first_list_rebuild_time = cur_time
|
||||
|
||||
# Update faster for the first few seconds;
|
||||
# then ease off to keep the list from jumping around.
|
||||
since_first = cur_time - self._first_public_party_list_rebuild_time
|
||||
since_first = cur_time - self._first_list_rebuild_time
|
||||
wait_time = (1.0 if since_first < 2.0 else
|
||||
2.5 if since_first < 10.0 else 5.0)
|
||||
assert self._last_public_party_list_rebuild_time is not None
|
||||
if cur_time - self._last_public_party_list_rebuild_time < wait_time:
|
||||
assert self._last_list_rebuild_time is not None
|
||||
if cur_time - self._last_list_rebuild_time < wait_time:
|
||||
return
|
||||
self._last_public_party_list_rebuild_time = cur_time
|
||||
self._last_list_rebuild_time = cur_time
|
||||
|
||||
# First off, check for the existence of our column widget;
|
||||
# if we don't have this, we're done.
|
||||
@ -594,7 +594,7 @@ class PublicGatherTab(GatherTab):
|
||||
# Ew; this rebuilding generates deferred selection callbacks
|
||||
# so we need to generated deferred ignore notices for ourself.
|
||||
def refresh_on() -> None:
|
||||
self._refreshing_public_party_list = True
|
||||
self._refreshing_list = True
|
||||
|
||||
ba.pushcall(refresh_on)
|
||||
|
||||
@ -701,7 +701,7 @@ class PublicGatherTab(GatherTab):
|
||||
|
||||
# So our selection callbacks can start firing..
|
||||
def refresh_off() -> None:
|
||||
self._refreshing_public_party_list = False
|
||||
self._refreshing_list = False
|
||||
|
||||
ba.pushcall(refresh_off)
|
||||
|
||||
@ -745,8 +745,8 @@ class PublicGatherTab(GatherTab):
|
||||
next_ping_time=ba.time(ba.TimeType.REAL) +
|
||||
0.001 * party_in['pd'],
|
||||
ping=None,
|
||||
index=self._next_public_party_entry_index)
|
||||
self._next_public_party_entry_index += 1
|
||||
index=self._next_entry_index)
|
||||
self._next_entry_index += 1
|
||||
assert isinstance(party.address, str)
|
||||
assert isinstance(party.next_ping_time, float)
|
||||
|
||||
@ -968,13 +968,13 @@ class PublicGatherTab(GatherTab):
|
||||
|
||||
# Rate limit this a bit.
|
||||
now = time.time()
|
||||
last_connect_time = self._last_public_party_connect_attempt_time
|
||||
last_connect_time = self._last_connect_attempt_time
|
||||
if last_connect_time is None or now - last_connect_time > 2.0:
|
||||
_ba.connect_to_party(address, port=port)
|
||||
self._last_public_party_connect_attempt_time = now
|
||||
self._last_connect_attempt_time = now
|
||||
|
||||
def _set_public_party_selection(self, sel: Selection) -> None:
|
||||
if self._refreshing_public_party_list:
|
||||
if self._refreshing_list:
|
||||
return
|
||||
self._selection = sel
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<!-- THIS FILE IS AUTO GENERATED; DO NOT EDIT BY HAND -->
|
||||
<h4><em>last updated on 2020-10-25 for Ballistica version 1.5.27 build 20224</em></h4>
|
||||
<h4><em>last updated on 2020-10-26 for Ballistica version 1.5.27 build 20227</em></h4>
|
||||
<p>This page documents the Python classes and functions in the 'ba' module,
|
||||
which are the ones most relevant to modding in Ballistica. If you come across something you feel should be included here or could be better explained, please <a href="mailto:support@froemling.net">let me know</a>. Happy modding!</p>
|
||||
<hr>
|
||||
@ -7036,7 +7036,8 @@ Currently the 'clients' option only works for transient messages.</p>
|
||||
simple_culling_v: float = None,
|
||||
selection_loops_to_parent: bool = None,
|
||||
claims_left_right: bool = None,
|
||||
claims_tab: bool = None) -> <a href="#class_ba_Widget">ba.Widget</a></span></p>
|
||||
claims_tab: bool = None,
|
||||
autoselect: bool = None) -> <a href="#class_ba_Widget">ba.Widget</a></span></p>
|
||||
|
||||
<p>Create or edit a scroll widget.</p>
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
namespace ballistica {
|
||||
|
||||
// These are set automatically via script; don't change here.
|
||||
const int kAppBuildNumber = 20227;
|
||||
const int kAppBuildNumber = 20228;
|
||||
const char* kAppVersion = "1.5.27";
|
||||
|
||||
// Our standalone globals.
|
||||
|
||||
@ -1180,6 +1180,7 @@ auto PyScrollWidget(PyObject* self, PyObject* args, PyObject* keywds)
|
||||
PyObject* selection_loops_to_parent_obj{Py_None};
|
||||
PyObject* claims_left_right_obj{Py_None};
|
||||
PyObject* claims_tab_obj{Py_None};
|
||||
PyObject* autoselect_obj{Py_None};
|
||||
|
||||
static const char* kwlist[] = {"edit",
|
||||
"parent",
|
||||
@ -1197,16 +1198,17 @@ auto PyScrollWidget(PyObject* self, PyObject* args, PyObject* keywds)
|
||||
"selection_loops_to_parent",
|
||||
"claims_left_right",
|
||||
"claims_tab",
|
||||
"autoselect",
|
||||
nullptr};
|
||||
|
||||
if (!PyArg_ParseTupleAndKeywords(
|
||||
args, keywds, "|OOOOOOOOOOOOOOOO", const_cast<char**>(kwlist),
|
||||
args, keywds, "|OOOOOOOOOOOOOOOOO", const_cast<char**>(kwlist),
|
||||
&edit_obj, &parent_obj, &size_obj, &pos_obj, &background_obj,
|
||||
&selected_child_obj, &capture_arrows_obj, &on_select_call_obj,
|
||||
¢er_small_content_obj, &color_obj, &highlight_obj,
|
||||
&border_opacity_obj, &simple_culling_v_obj,
|
||||
&selection_loops_to_parent_obj, &claims_left_right_obj,
|
||||
&claims_tab_obj))
|
||||
&claims_tab_obj, &autoselect_obj))
|
||||
return nullptr;
|
||||
|
||||
if (!g_game->IsInUIContext()) {
|
||||
@ -1288,6 +1290,9 @@ auto PyScrollWidget(PyObject* self, PyObject* args, PyObject* keywds)
|
||||
if (claims_tab_obj != Py_None) {
|
||||
widget->set_claims_tab(Python::GetPyBool(claims_tab_obj));
|
||||
}
|
||||
if (autoselect_obj != Py_None) {
|
||||
widget->set_auto_select(Python::GetPyBool(autoselect_obj));
|
||||
}
|
||||
|
||||
// If making a new widget add it at the end.
|
||||
if (edit_obj == Py_None) {
|
||||
@ -1320,6 +1325,7 @@ auto PyHScrollWidget(PyObject* self, PyObject* args, PyObject* keywds)
|
||||
PyObject* simple_culling_h_obj = Py_None;
|
||||
PyObject* claims_left_right_obj = Py_None;
|
||||
PyObject* claims_tab_obj = Py_None;
|
||||
PyObject* autoselect_obj = Py_None;
|
||||
|
||||
static const char* kwlist[] = {"edit",
|
||||
"parent",
|
||||
@ -1336,15 +1342,16 @@ auto PyHScrollWidget(PyObject* self, PyObject* args, PyObject* keywds)
|
||||
"simple_culling_h",
|
||||
"claims_left_right",
|
||||
"claims_tab",
|
||||
"autoselect",
|
||||
nullptr};
|
||||
|
||||
if (!PyArg_ParseTupleAndKeywords(
|
||||
args, keywds, "|OOOOOOOOOOOOOOO", const_cast<char**>(kwlist),
|
||||
args, keywds, "|OOOOOOOOOOOOOOOO", const_cast<char**>(kwlist),
|
||||
&edit_obj, &parent_obj, &size_obj, &pos_obj, &background_obj,
|
||||
&selected_child_obj, &capture_arrows_obj, &on_select_call_obj,
|
||||
¢er_small_content_obj, &color_obj, &highlight_obj,
|
||||
&border_opacity_obj, &simple_culling_h_obj, &claims_left_right_obj,
|
||||
&claims_tab_obj))
|
||||
&claims_tab_obj, &autoselect_obj))
|
||||
return nullptr;
|
||||
|
||||
if (!g_game->IsInUIContext()) {
|
||||
@ -1421,6 +1428,9 @@ auto PyHScrollWidget(PyObject* self, PyObject* args, PyObject* keywds)
|
||||
if (claims_tab_obj != Py_None) {
|
||||
widget->set_claims_tab(Python::GetPyBool(claims_tab_obj));
|
||||
}
|
||||
if (autoselect_obj != Py_None) {
|
||||
widget->set_auto_select(Python::GetPyBool(autoselect_obj));
|
||||
}
|
||||
|
||||
// if making a new widget add it at the end
|
||||
if (edit_obj == Py_None) {
|
||||
@ -2633,7 +2643,8 @@ PyMethodDef PythonMethodsUI::methods_def[] = {
|
||||
" simple_culling_v: float = None,\n"
|
||||
" selection_loops_to_parent: bool = None,\n"
|
||||
" claims_left_right: bool = None,\n"
|
||||
" claims_tab: bool = None) -> ba.Widget\n"
|
||||
" claims_tab: bool = None,\n"
|
||||
" autoselect: bool = None) -> ba.Widget\n"
|
||||
"\n"
|
||||
"Create or edit a scroll widget.\n"
|
||||
"\n"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user