From: Olaf Wintermann Date: Wed, 29 Oct 2025 20:18:30 +0000 (+0100) Subject: define menu X-Git-Url: https://uap-core.de/gitweb/?a=commitdiff_plain;h=9630b25b947a73ac1b0bddf6aa3339b1492f4530;p=uwplayer.git define menu --- diff --git a/application/application.c b/application/application.c index 34b9ceb..cc2a9ee 100644 --- a/application/application.c +++ b/application/application.c @@ -37,7 +37,28 @@ static Window app_player_window = 0; void AppInitMenu(void) { - // TODO + ui_menu("File") { + ui_menuitem(.label = "Open"); + ui_menuitem(.label = "Exit"); + } + ui_menu("Playback") { + ui_menu_toggleitem(.label = "Repeat", .varname = "repeat"); + ui_menu_toggleitem(.label = "Repeat List", .varname = "repeatlist"); + ui_menu_toggleitem(.label = "Random Playback", .varname = "random"); + ui_menu_toggleitem(.label = "Autoplay Folder", .varname = "autoplay"); + ui_menuseparator(); + ui_menuitem(.label = "Previous"); + ui_menuitem(.label = "Next"); + } + ui_menu("View") { + ui_menuitem(.label = "Fullscreen"); + ui_menu_toggleitem(.label = "View Sidebar", .varname = "sidebar"); + ui_menuseparator(); + ui_menu_toggleitem(.label = "Adjust Window Size", .varname = "adjustwindowsize"); + } + ui_menu("Preferences") { + ui_menu_toggleitem(.label = "Single Instance", .varname = "singleinstance"); + } } void AppStart(UiEvent *event, AppStartupSettings *settings) { diff --git a/application/application.h b/application/application.h index 6f17ee1..8b4b7ea 100644 --- a/application/application.h +++ b/application/application.h @@ -24,6 +24,7 @@ #define UWP_APPLICATION_H #include +#include #ifdef __cplusplus extern "C" { @@ -45,6 +46,78 @@ typedef struct AppStartupSettings { } AppStartupSettings; +typedef struct Player { + char *tmp; + pid_t process; + int log; + int ipc; + int status; + bool isactive; + bool isstarted; + Window window; + double playback_time; + int width; + int height; + int osd_height; + uint32_t ref; +} Player; + +typedef struct { + CxList *tracks; + CxList *history; + int current_track; + int current_history_pos; + PlaybackMode playback; +} PlayList; + +typedef struct MainWindow { + UiObject *obj; + + Widget window; + Widget menubar; + Widget player_widget; + Widget sidebar_scrolledwindow; + Widget sidebar; + char *file; + Player *player; + bool fullscreen; + bool sidebarvisible; + bool cursorhidden; + bool buttongrab; // TODO: can this be removed + bool pwbuttonpressed; + + UiInteger *_sidebarVisible; + UiInteger *_playbackRepeat; + UiInteger *_playbackRepeatList; + UiInteger *_playbackAutoPlay; + UiInteger *_playbackRandom; + UiInteger *_adjustWindowSize; + UiInteger *_singleInstance; + + + Widget playRepeatTrackButton; + Widget playRepeatListButton; + Widget playAutoPlayButton; + Widget playRandom; + Widget viewSidebarButton; + Widget viewAdjustWindowSize; + Widget prefSingleInstanceButton; + + PlayList playlist; + + bool adjustWindowSize; + bool singleInstance; + + Time player_event_time; + Time button_press_time; + double motion_playback_time; + int mouse_x; + int mouse_y; + + +} MainWindow; + + void AppSetPlayerWindow(Window w); void AppInitMenu(void); diff --git a/application/window.c b/application/window.c index 5777c8f..efbe2fb 100644 --- a/application/window.c +++ b/application/window.c @@ -266,6 +266,10 @@ MainWindow* WindowCreate(Display *display) { MainWindow *window = malloc(sizeof(MainWindow)); memset(window, 0, sizeof(MainWindow)); main_window = window; + + UiObject *obj = ui_window("uwplayer", NULL); + obj->window = window; + window->obj = obj; // toplevel window n = 0; @@ -358,6 +362,7 @@ MainWindow* GetMainWindow(void) { void WindowShow(MainWindow *win) { XtRealizeWidget(win->window); + //ui_show(win->obj); } /* diff --git a/application/window.h b/application/window.h index 90207cb..890b40d 100644 --- a/application/window.h +++ b/application/window.h @@ -40,70 +40,6 @@ extern "C" { #endif - -typedef struct Player { - char *tmp; - pid_t process; - int log; - int ipc; - int status; - bool isactive; - bool isstarted; - Window window; - double playback_time; - int width; - int height; - int osd_height; - uint32_t ref; -} Player; - -typedef struct { - CxList *tracks; - CxList *history; - int current_track; - int current_history_pos; - PlaybackMode playback; -} PlayList; - -typedef struct MainWindow { - UiObject *obj; - - Widget window; - Widget menubar; - Widget player_widget; - Widget sidebar_scrolledwindow; - Widget sidebar; - char *file; - Player *player; - bool fullscreen; - bool mbvisible; - bool sidebarvisible; - bool cursorhidden; - bool buttongrab; - bool pwbuttonpressed; - - Widget playRepeatTrackButton; - Widget playRepeatListButton; - Widget playAutoPlayButton; - Widget playRandom; - Widget viewSidebarButton; - Widget viewAdjustWindowSize; - Widget prefSingleInstanceButton; - - PlayList playlist; - - bool adjustWindowSize; - bool singleInstance; - - Time player_event_time; - Time button_press_time; - double motion_playback_time; - int mouse_x; - int mouse_y; - - -} MainWindow; - MainWindow* WindowCreate(Display *dp); MainWindow* GetMainWindow(void);