mirror of https://github.com/buggins/dlangui.git
This commit is contained in:
parent
81f068fc7b
commit
3bd735773f
|
|
@ -333,6 +333,16 @@ struct ObjectList(T) {
|
|||
}
|
||||
_count = 0;
|
||||
}
|
||||
/// Support foreach
|
||||
int opApply(int delegate(ref T) callback) {
|
||||
int res = 0;
|
||||
for(int i = 0; i < _count; i++) {
|
||||
res = callback(_list[i]);
|
||||
if (res)
|
||||
break;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
~this() {
|
||||
clear();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -162,6 +162,16 @@ class ComboBoxBase : HorizontalLayout, OnClickHandler {
|
|||
initialize();
|
||||
}
|
||||
|
||||
override void onThemeChanged() {
|
||||
super.onThemeChanged();
|
||||
if (_body)
|
||||
_body.onThemeChanged();
|
||||
if (_adapter)
|
||||
_adapter.onThemeChanged();
|
||||
if (_button)
|
||||
_button.onThemeChanged();
|
||||
}
|
||||
|
||||
protected void initialize() {
|
||||
_body = createSelectedItemWidget();
|
||||
_body.click = this;
|
||||
|
|
|
|||
|
|
@ -53,6 +53,9 @@ interface ListAdapter {
|
|||
ListAdapter connect(OnAdapterChangeHandler handler);
|
||||
/// disconnect adapter change handler
|
||||
ListAdapter disconnect(OnAdapterChangeHandler handler);
|
||||
|
||||
/// called when theme is changed
|
||||
void onThemeChanged();
|
||||
}
|
||||
|
||||
/// List adapter for simple list of widget instances
|
||||
|
|
@ -114,6 +117,10 @@ class ListAdapterBase : ListAdapter {
|
|||
if (adapterChanged.assigned)
|
||||
adapterChanged.emit(this);
|
||||
}
|
||||
|
||||
/// called when theme is changed
|
||||
void onThemeChanged() {
|
||||
}
|
||||
}
|
||||
|
||||
/// List adapter for simple list of widget instances
|
||||
|
|
@ -159,6 +166,12 @@ class WidgetListAdapter : ListAdapterBase {
|
|||
_widgets.clear();
|
||||
updateViews();
|
||||
}
|
||||
/// called when theme is changed
|
||||
override void onThemeChanged() {
|
||||
super.onThemeChanged();
|
||||
foreach(w; _widgets)
|
||||
w.onThemeChanged();
|
||||
}
|
||||
~this() {
|
||||
//Log.d("Destroying WidgetListAdapter");
|
||||
}
|
||||
|
|
@ -422,6 +435,13 @@ class StringListAdapter : StringListAdapterBase {
|
|||
return _widget;
|
||||
}
|
||||
|
||||
/// called when theme is changed
|
||||
override void onThemeChanged() {
|
||||
super.onThemeChanged();
|
||||
if (_widget)
|
||||
_widget.onThemeChanged();
|
||||
}
|
||||
|
||||
/// set one or more list item's state flags, returns updated state
|
||||
override uint setItemState(int index, uint flags) {
|
||||
uint res = super.setItemState(index, flags);
|
||||
|
|
@ -489,6 +509,13 @@ class IconStringListAdapter : StringListAdapterBase {
|
|||
return _widget;
|
||||
}
|
||||
|
||||
/// called when theme is changed
|
||||
override void onThemeChanged() {
|
||||
super.onThemeChanged();
|
||||
if (_widget)
|
||||
_widget.onThemeChanged();
|
||||
}
|
||||
|
||||
/// set one or more list item's state flags, returns updated state
|
||||
override uint setItemState(int index, uint flags) {
|
||||
uint res = super.setItemState(index, flags);
|
||||
|
|
@ -894,6 +921,8 @@ class ListWidget : WidgetGroup, OnScrollHandler, OnAdapterChangeHandler {
|
|||
Widget w = itemWidget(i);
|
||||
w.onThemeChanged();
|
||||
}
|
||||
if (_adapter)
|
||||
_adapter.onThemeChanged();
|
||||
}
|
||||
|
||||
/// Measure widget according to desired width and height constraints. (Step 1 of two phase layout).
|
||||
|
|
|
|||
Loading…
Reference in New Issue