add MwTreeViewSetOpened

git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@779 b9cfdab3-6d41-4d17-bbe4-086880011989
This commit is contained in:
NishiOwO
2025-11-22 15:25:18 +00:00
parent e1b2f40ac8
commit 7d81e59c7d
3 changed files with 28 additions and 3 deletions

View File

@@ -81,6 +81,16 @@ MwInline void MwTreeViewSetPixmap(MwWidget handle, void* item, MwLLPixmap pixmap
MwVaWidgetExecute(handle, "mwTreeViewSetPixmap", NULL, item, pixmap); MwVaWidgetExecute(handle, "mwTreeViewSetPixmap", NULL, item, pixmap);
} }
/*!
* @brief Sets the opened state of ithe item
* @param handle Widget
* @param item Item
* @param opened Opened or not
*/
MwInline void MwTreeViewSetOpened(MwWidget handle, void* item, int opened) {
MwVaWidgetExecute(handle, "mwTreeViewSetOpened", NULL, item, opened);
}
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -238,10 +238,10 @@ static void MwFreeWidget(MwWidget handle) {
void MwDestroyWidget(MwWidget handle) { void MwDestroyWidget(MwWidget handle) {
if(handle->parent != NULL) { if(handle->parent != NULL) {
int i; int i;
for(i = 0; i < arrlen(handle->parent->destroy_queue); i++){ for(i = 0; i < arrlen(handle->parent->destroy_queue); i++) {
if(handle->parent->destroy_queue[i] == handle) break; if(handle->parent->destroy_queue[i] == handle) break;
} }
if(i == arrlen(handle->parent->destroy_queue)){ if(i == arrlen(handle->parent->destroy_queue)) {
arrput(handle->parent->destroy_queue, handle); arrput(handle->parent->destroy_queue, handle);
} }
} }

View File

@@ -410,7 +410,17 @@ static void mwTreeViewSetPixmapImpl(MwWidget handle, void* item, MwLLPixmap pixm
e->pixmap = pixmap; e->pixmap = pixmap;
if(e->parent != NULL && e->parent->opened) { if(e->parent == NULL || (e->parent != NULL && e->parent->opened)) {
resize(handle);
}
}
static void mwTreeViewSetOpenedImpl(MwWidget handle, void* item, int opened) {
MwTreeViewEntry* e = item;
e->opened = opened;
if(e->parent == NULL || (e->parent != NULL && e->parent->opened)) {
resize(handle); resize(handle);
} }
} }
@@ -443,6 +453,11 @@ static void func_handler(MwWidget handle, const char* name, void* out, va_list v
MwLLPixmap pixmap = va_arg(va, MwLLPixmap); MwLLPixmap pixmap = va_arg(va, MwLLPixmap);
mwTreeViewSetPixmapImpl(handle, item, pixmap); mwTreeViewSetPixmapImpl(handle, item, pixmap);
} }
if(strcmp(name, "mwTreeViewSetOpened") == 0) {
void* item = va_arg(va, void*);
int opened = va_arg(va, int);
mwTreeViewSetOpenedImpl(handle, item, opened);
}
} }
static void tick(MwWidget handle) { static void tick(MwWidget handle) {