]> uap-core.de Git - uwplayer.git/commitdiff
define menu
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Wed, 29 Oct 2025 20:18:30 +0000 (21:18 +0100)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Wed, 29 Oct 2025 20:18:30 +0000 (21:18 +0100)
application/application.c
application/application.h
application/window.c
application/window.h

index 34b9ceb46bdfe24b068b7089686ea03cc69aa1a2..cc2a9eee44c84361f04bec087b7cc1e920332f95 100644 (file)
@@ -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) {
index 6f17ee13659cf94a777220be2e787eaf502c8255..8b4b7ea8c0b74d7ba5477c15d31debd1d622b652 100644 (file)
@@ -24,6 +24,7 @@
 #define UWP_APPLICATION_H
 
 #include <ui/ui.h>
+#include <cx/list.h>
 
 #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);
index 5777c8f10f8a96560995b4c835469686a0919323..efbe2fbf024a5cca8139c5f515911390a97ef7d2 100644 (file)
@@ -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);
 }
 
 /*
index 90207cb5e75766ed35071a3155892a46d7b66708..890b40d7c385f2957ac9f1b4c44e16b542471b2d 100644 (file)
@@ -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);