#include "player.h"
#include "playlist.h"
#include "xdnd.h"
+#include "settings.h"
#include "Fsb.h"
#include "Sidebar.h"
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);
XmStringFree(s);
Widget viewMenu = XmVaCreateSimplePulldownMenu(menubar, "menu", 2, NULL, NULL);
+ s = XmStringCreateSimple("Preferences");
+ Widget prefMenuItem = XtVaCreateManagedWidget(
+ "menuitem",
+ xmCascadeButtonWidgetClass,
+ menubar,
+ XmNlabelString, s,
+ NULL);
+ XmStringFree(s);
+ Widget prefMenu = XmVaCreateSimplePulldownMenu(menubar, "menu", 3, NULL, NULL);
+
// file menu
createMenuItem(fileMenu, "fileOpen", "Open...", 'O', "Ctrl<Key>O", "Ctrl+O", FileOpenCB, NULL);
createMenuItem(fileMenu, "fileQuit", "Exit", 'E', "Ctrl<Key>Q", "Ctrl+Q", FileQuitCB, NULL);
XtVaSetValues(win->playAutoPlayButton, XmNindicatorType, XmONE_OF_MANY, NULL);
XtVaSetValues(win->playRandom, XmNindicatorType, XmONE_OF_MANY, NULL);
-
// view menu
createMenuItem(viewMenu, "viewFullscreen", "Fullscreen", 'F', "<Key>F", "F", ViewFullscreenCB, NULL);
win->viewSidebarButton = createToggleMenuItem(viewMenu, "viewSidebar", "View Sidebar", 'S', False, NULL, NULL, ViewSidebarCB, win);
createMenuSeparator(viewMenu);
win->viewAdjustWindowSize = createToggleMenuItem(viewMenu, "viewAdjustWindowSize", "Adjust Window Size", 'W', TRUE, NULL, NULL, ViewAdjustWindowSizeCB, win);
+
+ // preferences menu
+ win->prefSingleInstanceButton = createToggleMenuItem(prefMenu, "prefSingleInstance", "Single Instance", 'S', FALSE, NULL, NULL, PrefSingleInstanceCB, win);
}
void go_fullscreen(Display *dsp, Window win)
win->adjustWindowSize = XmToggleButtonGadgetGetState(w);
}
+static void PrefSingleInstanceCB(Widget w, void *udata, void *cdata) {
+ MainWindow *win = udata;
+ win->singleInstance = XmToggleButtonGadgetGetState(w);
+
+ Display *dp = XtDisplay(w);
+
+ if(!win->singleInstance) {
+ ShutdownInstanceSocket(dp);
+ return;
+ }
+
+ Bool disable_item = False;
+ if(CreateSingleInstanceSocket(dp, &disable_item)) {
+ // TODO: err
+ disable_item = True;
+ }
+ if(disable_item) {
+ win->singleInstance = 0;
+ XmToggleButtonGadgetSetState(w, False, False);
+ }
+}
+
void WindowAdjustAspectRatio(MainWindow *win) {
if(!win->player) return;
if(!win->player->isactive || win->player->width <= 0 || win->player->height <= 0) return;