]> uap-core.de Git - uwplayer.git/commitdiff
remove old motif UI code default
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Sun, 23 Nov 2025 13:54:55 +0000 (14:54 +0100)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Sun, 23 Nov 2025 13:54:55 +0000 (14:54 +0100)
application/window.c
ui/motif/window.c
ui/ui/window.h

index 735cbadb9f819c687a356651647d769c320f8322..01cfc26160f21ccec2f7fe6be23e2ec2e9d64854 100644 (file)
@@ -37,9 +37,6 @@ static MainWindow *main_window;
 
 static void WindowCreateMenu(MainWindow *win, Widget parent, Arg *args, int nargs);
 
-static void ViewFullscreenCB(Widget w, void *udata, void *cdata);
-static void ViewSidebarCB(Widget w, void *udata, void *cdata);
-static void ViewAdjustWindowSizeCB(Widget w, void *udata, void *cdata);
 static void PrefSingleInstanceCB(Widget w, void *udata, void *cdata);
 
 static void WindowRealized(MainWindow *win);
@@ -317,82 +314,6 @@ MainWindow* WindowCreate(Display *display) {
     }
     
     WindowShowSidebar(window, FALSE);
-      
-    /*
-    // toplevel window
-    n = 0;
-    XtSetArg(args[n], XmNtitle, APP_NAME); n++;
-    window->window = XtAppCreateShell(
-            APP_NAME,
-            APP_CLASS,
-            applicationShellWidgetClass,
-            //vendorShellWidgetClass,
-            display,
-            args,
-            n);
-    
-    // close handler
-    Atom wm_delete_window;
-    wm_delete_window = XmInternAtom(
-            display,
-            "WM_DELETE_WINDOW",
-            0);
-    XmAddWMProtocolCallback(
-            window->window,
-            wm_delete_window,
-            window_close_handler,
-            window);
-    
-    // resize handler
-    XtAddEventHandler(window->window, StructureNotifyMask, False, resizeEH, window);
-    
-    n = 0;
-    XtSetArg(args[n], XmNwidth, 360); n++;
-    XtSetArg(args[n], XmNheight, 220); n++;
-    XtSetArg(args[n], XmNshadowThickness, 0); n++;
-    Widget container = XmCreateForm(window->window, "form", args, n);
-    XtManageChild(container);
-    XtAddEventHandler(container, KeyPressMask, FALSE, windowKeyEH, window);
-    
-    n = 0;
-    XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
-    XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;
-    XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); n++;
-    WindowCreateMenu(window, container, args, n);
-    
-    n = 0;
-    XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;
-    XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); n++;
-    XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
-    XtSetArg(args[n], XmNtopWidget, window->menubar); n++;
-    XtSetArg(args[n], XmNwidth, 300); n++;
-    XtSetArg(args[n], XmNscrollingPolicy, XmAUTOMATIC); n++;
-    XtSetArg(args[n], XmNscrollBarDisplayPolicy, XmAS_NEEDED); n++;
-    XtSetArg(args[n], XmNspacing, 0); n++;
-    XtSetArg(args[n], XmNshadowThickness, 0); n++;
-    window->sidebar_scrolledwindow = XmCreateScrolledWindow(container, "sw_sidebar", args, n);
-    window->sidebar = CreateSidebar(window->sidebar_scrolledwindow, "sidebar", args, 0);
-    SidebarSetWindow(window->sidebar, window);
-    XtManageChild(window->sidebar);
-    //XtManageChild(window->sidebar);
-        
-    n = 0;
-    XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
-    XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;
-    XtSetArg(args[n], XmNrightWidget, window->sidebar); n++;
-    XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); n++;
-    XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
-    XtSetArg(args[n], XmNtopWidget, window->menubar); n++;
-    XtSetArg(args[n], XmNbackground, BlackPixelOfScreen(XtScreen(window->window))); n++;
-    window->player_widget = XmCreateDrawingArea(container, "player", args, n);
-    XtManageChild(window->player_widget);
-    XtAddCallback(window->player_widget, XmNinputCallback, playerWidgetInputCB, window);
-    XmProcessTraversal(window->player_widget, XmTRAVERSE_CURRENT);
-    XtAddEventHandler(window->player_widget, PointerMotionMask | ButtonPressMask | ButtonReleaseMask | FocusChangeMask |
-                 EnterWindowMask | KeyPressMask | KeyReleaseMask |
-                  LeaveWindowMask, FALSE, playerEH, window);
-    */
-    
      
     // get F keycode
     keycodeF = XKeysymToKeycode(XtDisplay(obj->widget), XStringToKeysym("F"));
@@ -410,163 +331,19 @@ MainWindow* GetMainWindow(void) {
 }
 
 void WindowShow(MainWindow *win) {
-    //XtRealizeWidget(win->window);
     ui_show(win->obj);
 }
 
-/*
- * Creates a XmPushButton menu item
- */
-static Widget createMenuItem(
-        Widget menu,
-        char *name,
-        char *label,
-        char mnemonic,
-        const char *accelerator,
-        char *accelerator_text,
-        XtCallbackProc callback,
-        void *cbData)
-{
-    Arg args[16];
-    int n = 0;
-    
-    XmString s1 = XmStringCreateSimple(label);
-    XtSetArg(args[n], XmNlabelString, s1); n++;
-    XtSetArg(args[n], XmNmnemonic, mnemonic); n++;
-    XmString at = NULL;
-    if(accelerator && accelerator_text) {
-        at = XmStringCreateSimple(accelerator_text);
-        XtSetArg(args[n], XmNaccelerator, accelerator); n++;
-        XtSetArg(args[n], XmNacceleratorText, at); n++;
-    }
-    
-    Widget menuItem = XmCreatePushButtonGadget(menu, name, args, n);
-    XtManageChild(menuItem);
-    XmStringFree(s1);
-    if(at) XmStringFree(at);
-    
-    if(callback) {
-        XtAddCallback(menuItem, XmNactivateCallback, (XtCallbackProc)callback, cbData);
-    }
-    
-    return menuItem;
-}
-
-/*
- * Creates a XmToggleButton menu item
- */
-static Widget createToggleMenuItem(
-        Widget menu,
-        char *name,
-        char *label,
-        char mnemonic,
-        Boolean defaultValue,
-        const char *accelerator,
-        char *accelerator_text,
-        XtCallbackProc callback,
-        void *cbData)
-{
-    Arg args[16];
-    int n = 0;
-    
-    XmString s1 = XmStringCreateSimple(label);
-    XtSetArg(args[n], XmNlabelString, s1); n++;
-    XtSetArg(args[n], XmNmnemonic, mnemonic); n++;
-    XtSetArg(args[n], XmNset, defaultValue); n++;
-    XmString at = NULL;
-    if(accelerator && accelerator_text) {
-        at = XmStringCreateSimple(accelerator_text);
-        XtSetArg(args[n], XmNaccelerator, accelerator); n++;
-        XtSetArg(args[n], XmNacceleratorText, at); n++;
-    }
-    
-    Widget menuItem = XmCreateToggleButtonGadget(menu, name, args, n);
-    XtManageChild(menuItem);
-    XmStringFree(s1);
-    if(at) XmStringFree(at);
-    
-    if(callback) {
-        XtAddCallback(menuItem, XmNvalueChangedCallback, (XtCallbackProc)callback, cbData);
-    }
-    
-    return menuItem;
-}
-
-/*
- * Creates a menu separator
- */
-static Widget createMenuSeparator(Widget menu) {
-    Widget w = XmCreateSeparator(menu, "separator", NULL, 0);
-    XtManageChild(w);
-    return w;
-}
-
-void go_fullscreen(Display *dsp, Window win)
-{
-  XEvent xev;
-  Atom wm_state = XInternAtom(dsp, "_NET_WM_STATE", False);
-  Atom fullscreen = XInternAtom(dsp, "_NET_WM_STATE_FULLSCREEN", False);
-  memset(&xev, 0, sizeof(xev));
-  xev.type = ClientMessage;
-  xev.xclient.window = win;
-  xev.xclient.message_type = wm_state;
-  xev.xclient.format = 32;
-  xev.xclient.data.l[0] = 1; // _NET_WM_STATE_ADD
-  xev.xclient.data.l[1] = fullscreen;
-  xev.xclient.data.l[2] = 0;
-  XSendEvent(dsp, DefaultRootWindow(dsp), False,
-    SubstructureNotifyMask, &xev);
-}
-
 static Atom net_wm_state;
 static Atom net_wm_state_fullscreen;
 static int net_wm_atoms_initialized = 0;
 
 void WindowFullscreen(MainWindow *win, bool enableFullscreen) {
-    Display *dpy = XtDisplay(win->obj->widget);
-    
-    // init net_wm_state atoms
-    if(!net_wm_atoms_initialized) {
-        net_wm_state = XInternAtom(dpy, "_NET_WM_STATE", False);
-        net_wm_state_fullscreen = XInternAtom(dpy, "_NET_WM_STATE_FULLSCREEN", False);
-        net_wm_atoms_initialized = 1;
-    }
-    
     ui_window_menubar_set_visible(win->obj, !enableFullscreen);
     win->fullscreen = enableFullscreen;
     
     WindowShowSidebar(win, enableFullscreen ? false : win->sidebarvisible);
-    
-    XEvent ev;
-    memset(&ev, 0, sizeof(XEvent));
-    ev.type = ClientMessage;
-    ev.xclient.window = XtWindow(win->obj->widget);
-    ev.xclient.message_type = net_wm_state;
-    ev.xclient.format = 32;
-    ev.xclient.data.l[0] = enableFullscreen ? 1 : 0;
-    ev.xclient.data.l[1] = net_wm_state_fullscreen;
-    ev.xclient.data.l[2] = 0;
-    XSendEvent(dpy, DefaultRootWindow(dpy), False, SubstructureNotifyMask | SubstructureRedirectMask, &ev);
-}
-
-static void ViewFullscreenCB(Widget w, void *udata, void *cdata) {
-    if(main_window->fullscreen) {
-        WindowFullscreen(main_window, FALSE);
-    } else {
-        WindowFullscreen(main_window, TRUE);
-    }   
-}
-
-static void ViewSidebarCB(Widget w, void *udata, void *cdata) {
-    MainWindow *win = udata;
-    XmToggleButtonCallbackStruct *cb = cdata;
-    win->sidebarvisible = cb->set;
-    WindowShowSidebar(win, cb->set);
-}
-
-static void ViewAdjustWindowSizeCB(Widget w, void *udata, void *cdata) {
-    MainWindow *win = udata;
-    win->adjustWindowSize = XmToggleButtonGadgetGetState(w);
+    ui_window_fullscreen(win->obj, enableFullscreen);
 }
 
 static void PrefSingleInstanceCB(Widget w, void *udata, void *cdata) {
index 990b7884c4b3bb21594c7376f40011ee8cc5fb75..9489f077c96d24ddb4fcbae7acdf3d8d08c2ba81 100644 (file)
@@ -179,6 +179,32 @@ void ui_window_menubar_set_visible(UiObject *obj, UiBool visible) {
     }
 }
 
+static Atom net_wm_state;
+static Atom net_wm_state_fullscreen;
+static int net_wm_atoms_initialized = 0;
+
+void ui_window_fullscreen(UiObject *obj, UiBool fullscreen) {
+    Display *dpy = XtDisplay(obj->widget);
+    
+    // init net_wm_state atoms
+    if(!net_wm_atoms_initialized) {
+        net_wm_state = XInternAtom(dpy, "_NET_WM_STATE", False);
+        net_wm_state_fullscreen = XInternAtom(dpy, "_NET_WM_STATE_FULLSCREEN", False);
+        net_wm_atoms_initialized = 1;
+    }
+    
+    XEvent ev;
+    memset(&ev, 0, sizeof(XEvent));
+    ev.type = ClientMessage;
+    ev.xclient.window = XtWindow(obj->widget);
+    ev.xclient.message_type = net_wm_state;
+    ev.xclient.format = 32;
+    ev.xclient.data.l[0] = fullscreen ? 1 : 0;
+    ev.xclient.data.l[1] = net_wm_state_fullscreen;
+    ev.xclient.data.l[2] = 0;
+    XSendEvent(dpy, DefaultRootWindow(dpy), False, SubstructureNotifyMask | SubstructureRedirectMask, &ev);
+}
+
 static void filedialog_event(UiEventData *event, int result, UiFileList flist) {
     UiEvent evt;
     evt.obj = event->obj;
index 27203c2d0333367d60235519424a616b7f3a2c2b..3619b3a0102aef270b6829b9c0b389ff9586120c 100644 (file)
@@ -85,6 +85,8 @@ UIEXPORT void ui_window_size(UiObject *obj, int width, int height);
 UIEXPORT void ui_window_default_size(int width, int height);
 UIEXPORT void ui_window_menubar_set_visible(UiObject *obj, UiBool visible);
 
+UIEXPORT void ui_window_fullscreen(UiObject *obj, UiBool fullscreen);
+
 UIEXPORT void ui_splitview_window_set_pos(UiObject *obj, int pos);
 UIEXPORT int ui_splitview_window_get_pos(UiObject *obj);
 UIEXPORT void ui_splitview_window_set_default_pos(int pos);