/*
* This file is part of DisOrder.
- * Copyright (C) 2006-2008 Richard Kettlewell
+ * Copyright (C) 2006-2009 Richard Kettlewell
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
#include "disobedience.h"
+static void toggled_minimode(GtkCheckMenuItem *item, gpointer userdata);
+
static GtkWidget *selectall_widget;
static GtkWidget *selectnone_widget;
static GtkWidget *properties_widget;
-#if PLAYLISTS
GtkWidget *menu_playlists_widget;
GtkWidget *playlists_menu;
GtkWidget *menu_editplaylists_widget;
-#endif
+static GtkWidget *menu_minimode_widget;
/** @brief Main menu widgets */
GtkItemFactory *mainmenufactory;
+/** @brief Set for full mode, clear for mini mode */
+int full_mode = 1;
+
static void about_popup_got_version(void *v,
const char *err,
const char *value);
GtkWidget attribute((unused)) *menu_item) {
D(("manual_popup"));
- popup_help();
+ popup_help(NULL);
}
/** @brief Called when version arrives, displays about... popup */
},
{
(char *)"/Edit/Select all tracks", /* path */
- 0, /* accelerator */
+ (char *)"<CTRL>A", /* accelerator */
menu_tab_action, /* callback */
offsetof(struct tabtype, selectall_activate), /* callback_action */
0, /* item_type */
},
{
(char *)"/Edit/Deselect all tracks", /* path */
- 0, /* accelerator */
+ (char *)"<CTRL><SHIFT>A", /* accelerator */
menu_tab_action, /* callback */
offsetof(struct tabtype, selectnone_activate), /* callback_action */
0, /* item_type */
0, /* item_type */
0 /* extra_data */
},
-#if PLAYLISTS
{
(char *)"/Edit/Edit playlists", /* path */
0, /* accelerator */
0, /* item_type */
0 /* extra_data */
},
-#endif
{
(char *)"<CheckItem>", /* item_type */
0 /* extra_data */
},
-#if PLAYLISTS
+ {
+ (char *)"/Control/Compact mode", /* path */
+ (char *)"<CTRL>M", /* accelerator */
+ 0, /* callback */
+ 0, /* callback_action */
+ (char *)"<CheckItem>", /* item_type */
+ 0 /* extra_data */
+ },
{
(char *)"/Control/Activate playlist", /* path */
0, /* accelerator */
(char *)"<Branch>", /* item_type */
0 /* extra_data */
},
-#endif
-
+
{
(char *)"/Help", /* path */
0, /* accelerator */
0 /* extra_data */
},
{
- (char *)"/Help/Manual page", /* path */
+ (char *)"/Help/Manual", /* path */
0, /* accelerator */
manual_popup, /* callback */
0, /* callback_action */
"<GdisorderMain>/Edit/Deselect all tracks");
properties_widget = gtk_item_factory_get_widget(mainmenufactory,
"<GdisorderMain>/Edit/Track properties");
-#if PLAYLISTS
menu_playlists_widget = gtk_item_factory_get_item(mainmenufactory,
"<GdisorderMain>/Control/Activate playlist");
playlists_menu = gtk_item_factory_get_widget(mainmenufactory,
"<GdisorderMain>/Control/Activate playlist");
menu_editplaylists_widget = gtk_item_factory_get_widget(mainmenufactory,
"<GdisorderMain>/Edit/Edit playlists");
-#endif
+ menu_minimode_widget = gtk_item_factory_get_widget(mainmenufactory,
+ "<GdisorderMain>/Control/Compact mode");
assert(selectall_widget != 0);
assert(selectnone_widget != 0);
assert(properties_widget != 0);
-#if PLAYLISTS
assert(menu_playlists_widget != 0);
assert(playlists_menu != 0);
assert(menu_editplaylists_widget != 0);
-#endif
GtkWidget *edit_widget = gtk_item_factory_get_widget(mainmenufactory,
"<GdisorderMain>/Edit");
m = gtk_item_factory_get_widget(mainmenufactory,
"<GdisorderMain>");
set_tool_colors(m);
+ if(menu_minimode_widget)
+ g_signal_connect(G_OBJECT(menu_minimode_widget), "toggled",
+ G_CALLBACK(toggled_minimode), NULL);
return m;
}
+static void toggled_minimode(GtkCheckMenuItem *item,
+ gpointer attribute((unused)) userdata) {
+ int new_full_mode = !gtk_check_menu_item_get_active(item);
+ if(full_mode != new_full_mode) {
+ full_mode = new_full_mode;
+ event_raise("mini-mode-changed", NULL);
+ }
+}
+
/*
Local Variables:
c-basic-offset:2