}
Dimension win_width, win_height;
- XtVaGetValues(win->window, XmNwidth, &win_width, XmNheight, &win_height, NULL);
+ XtVaGetValues(win->obj->widget, XmNwidth, &win_width, XmNheight, &win_height, NULL);
Dimension player_width, player_height;
XtVaGetValues(win->player_widget, XmNwidth, &player_width, XmNheight, &player_height, NULL);
Dimension new_height = player->height + win_height - player_height;
// set window size
- XtVaSetValues(win->window, XmNwidth, new_width, XmNheight, new_height, NULL);
+ XtVaSetValues(win->obj->widget, XmNwidth, new_width, XmNheight, new_height, NULL);
// set window aspect ratio
XSizeHints hints;
hints.min_aspect.y = new_height;
hints.max_aspect.x = new_width;
hints.max_aspect.y = new_height;
- XSetWMNormalHints(XtDisplay(win->window), XtWindow(win->window), &hints);
+ XSetWMNormalHints(XtDisplay(win->obj->widget), XtWindow(win->obj->widget), &hints);
return 0;
}
#include "xdnd.h"
#include "settings.h"
-#include "Fsb.h"
#include "Sidebar.h"
static MainWindow *main_window;
static void WindowCreateMenu(MainWindow *win, Widget parent, Arg *args, int nargs);
-static void FileOpenCB(Widget w, void *udata, void *cdata);
-static void FileQuitCB(Widget w, void *udata, void *cdata);
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);
blank_cursor_init = 1;
}
-static void window_close_handler(Widget window, void *udata, void *cdata) {
- FileQuitCB(window, NULL, NULL);
-}
static unsigned int keycodeF;
init_blank_cursor(win->player_widget);
}
- XdndEnable(win->window);
+ XdndEnable(win->obj->widget);
}
static void playerWidgetInputCB(Widget widget, XtPointer u, XtPointer c) {
if(win->pwbuttonpressed) {
- Display *dp = XtDisplay(win->window);
+ Display *dp = XtDisplay(win->obj->widget);
XtUngrabPointer(win->player_widget, CurrentTime);
memset(&xev, 0, sizeof(xev));
xev.type = ClientMessage;
xev.xclient.message_type = XInternAtom(dp, "_NET_WM_MOVERESIZE", False);
- xev.xclient.window = XtWindow(win->window);
+ xev.xclient.window = XtWindow(win->obj->widget);
xev.xclient.format = 32;
xev.xclient.data.l[0] = x;
xev.xclient.data.l[1] = y;
Widget w = CreateSidebar(parent, "sidebar", a, n);
SidebarSetWindow(w, window);
+ window->sidebar = w;
+
return w;
}
static int net_wm_atoms_initialized = 0;
void WindowFullscreen(MainWindow *win, bool enableFullscreen) {
- Display *dpy = XtDisplay(win->window);
+ Display *dpy = XtDisplay(win->obj->widget);
// init net_wm_state atoms
if(!net_wm_atoms_initialized) {
XEvent ev;
memset(&ev, 0, sizeof(XEvent));
ev.type = ClientMessage;
- ev.xclient.window = XtWindow(win->window);
+ 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;
}
}
-static void filedialog_end(
- Widget widget,
- MainWindow *data,
- XmFileSelectionBoxCallbackStruct *selection)
-{
- XtUnmanageChild(widget);
- XtDestroyWidget(widget);
-}
-
-static void filedialog_select(
- Widget widget,
- MainWindow *data,
- XmFileSelectionBoxCallbackStruct *selection)
-{
- char *value = NULL;
- if(selection->value) {
- XmStringGetLtoR(selection->value, XmSTRING_DEFAULT_CHARSET, &value);
- if(value) {
- PlayListAddFile(data, value);
- PlayListPlayNext(data, true);
- XtFree(value);
- }
- }
- filedialog_end(widget, data, NULL);
-}
-
-
-
-
-static void FileOpenCB(Widget w, void *udata, void *cdata) {
- MainWindow *win = main_window;
-
- Arg args[16];
- int n = 0;
-
- XtSetArg(args[n], XnNshowViewMenu, 1); n++;
- Widget dialog = XnCreateFileSelectionDialog(win->window, "dialog", args, n);
- XtAddCallback(dialog, XmNokCallback, (XtCallbackProc)filedialog_select, win);
- XtAddCallback(dialog, XmNcancelCallback, (XtCallbackProc)filedialog_end, win);
-
- Widget dirUp = XnFileSelectionBoxGetChild(dialog, XnFSB_DIR_UP_BUTTON);
- XtUnmanageChild(dirUp);
-
- XtManageChild(dialog);
-}
-
-static void FileQuitCB(Widget w, void *udata, void *cdata) {
- WindowClosePlayer(main_window);
- ShutdownInstanceSocket(XtDisplay(w));
- ApplicationExit();
-}
-
static void ViewFullscreenCB(Widget w, void *udata, void *cdata) {
if(main_window->fullscreen) {
WindowFullscreen(main_window, FALSE);
// the video, because of window decoration, menubar and other extra controls)
Dimension win_width, win_height;
- XtVaGetValues(win->window, XmNwidth, &win_width, XmNheight, &win_height, NULL);
+ XtVaGetValues(win->obj->widget, XmNwidth, &win_width, XmNheight, &win_height, NULL);
Dimension player_width, player_height;
XtVaGetValues(win->player_widget, XmNwidth, &player_width, XmNheight, &player_height, NULL);
hints.max_aspect.x = new_width;
hints.max_aspect.y = new_height;
//printf("new size: %d x %d current: %d x %d\n", (int)new_width, (int)new_height, (int)win_width, (int)win_height);
- XSetWMNormalHints(XtDisplay(win->window), XtWindow(win->window), &hints);
+ XSetWMNormalHints(XtDisplay(win->obj->widget), XtWindow(win->obj->widget), &hints);
}
void WindowClosePlayer(MainWindow *win) {
}
void WindowUpdate(MainWindow *win) {
- SidebarRepaint(win->sidebar);
+ if(win->sidebar) {
+ SidebarRepaint(win->sidebar);
+ }
}