From: Olaf Wintermann Date: Fri, 31 Oct 2025 11:00:42 +0000 (+0100) Subject: implement alternative window layout without splitpane X-Git-Url: https://uap-core.de/gitweb/?a=commitdiff_plain;h=ee26821f9341b2fac95410b7acda1467e7390ae5;p=uwplayer.git implement alternative window layout without splitpane --- diff --git a/application/application.h b/application/application.h index fb2dd5e..41591c7 100644 --- a/application/application.h +++ b/application/application.h @@ -80,6 +80,10 @@ typedef struct MainWindow { Widget player_widget; Widget sidebar_scrolledwindow; Widget sidebar; + + UIWIDGET listview; // TODO: maybe this can be removed + UIWIDGET listview_scrolledwindow; + char *file; Player *player; bool fullscreen; diff --git a/application/window.c b/application/window.c index 6acafeb..4fb66ef 100644 --- a/application/window.c +++ b/application/window.c @@ -257,7 +257,16 @@ void WindowHandlePlayerEvent(MainWindow *win, XEvent *event) { } } - +#ifdef UI_MOTIF +static UIWIDGET create_motif_listview(UiObject *obj, UiWidgetArgs *args, void *userdata, Widget parent, Arg *a, int n) { + MainWindow *window = userdata; + + Widget w = CreateSidebar(parent, "sidebar", a, n); + SidebarSetWindow(w, window); + + return w; +} +#endif MainWindow* WindowCreate(Display *display) { Arg args[32]; @@ -283,13 +292,24 @@ MainWindow* WindowCreate(Display *display) { // TODO: enable when the motif splitpane is implemented in the toolkit /* - ui_vsplitpane(obj, .value = window->splitview) { + ui_vsplitpane(obj, .value = window->splitview, .fill = TRUE) { window->player_widget = ui_drawingarea(obj, .width = 400, .height = 200); UIWIDGET listview = ui_listview(obj, .varname = "playlist"); ui_widget_set_visibility_states(obj->ctx, listview, UI_GROUPS(APP_STATES_SHOW_SIDEBAR), 1); } */ + ui_hbox(obj, .fill = TRUE) { + window->player_widget = ui_drawingarea(obj, .width = 400, .height = 200); + +#ifndef UI_MOTIF + window->listview = ui_listview(obj, .varname = "playlist", .width = 300); +#else + ui_scrolledwindow_w(obj, window->listview_scrolledwindow, 0) { + window->listview = ui_customwidget(obj, create_motif_listview, window); + } +#endif + } // toplevel window n = 0;