|
|
@@ -30,9 +30,6 @@ GtkStatsServer() {
|
|
|
#endif
|
|
|
_last_session.set_binary();
|
|
|
|
|
|
- _window = nullptr;
|
|
|
- _menu_bar = nullptr;
|
|
|
- _options_menu = nullptr;
|
|
|
|
|
|
_time_units = 0;
|
|
|
|
|
|
@@ -417,6 +414,14 @@ get_window() const {
|
|
|
return _window;
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * Returns the server window's accelerator group.
|
|
|
+ */
|
|
|
+GtkAccelGroup *GtkStatsServer::
|
|
|
+get_accel_group() const {
|
|
|
+ return _accel_group;
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* Returns the menu handle to the server's menu bar.
|
|
|
*/
|
|
|
@@ -479,8 +484,8 @@ create_window() {
|
|
|
}), this);
|
|
|
|
|
|
// Set up the menu.
|
|
|
- GtkAccelGroup *accel_group = gtk_accel_group_new();
|
|
|
- gtk_window_add_accel_group(GTK_WINDOW(_window), accel_group);
|
|
|
+ _accel_group = gtk_accel_group_new();
|
|
|
+ gtk_window_add_accel_group(GTK_WINDOW(_window), _accel_group);
|
|
|
_menu_bar = gtk_menu_bar_new();
|
|
|
|
|
|
setup_session_menu();
|
|
|
@@ -533,6 +538,8 @@ setup_session_menu() {
|
|
|
GtkStatsServer *self = (GtkStatsServer *)data;
|
|
|
self->new_session();
|
|
|
}), this);
|
|
|
+ gtk_widget_add_accelerator(item, "activate", _accel_group,
|
|
|
+ GDK_KEY_n, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
|
|
|
|
|
|
item = gtk_menu_item_new_with_mnemonic("_Open Session...");
|
|
|
gtk_menu_shell_append(GTK_MENU_SHELL(_session_menu), item);
|
|
|
@@ -541,6 +548,8 @@ setup_session_menu() {
|
|
|
GtkStatsServer *self = (GtkStatsServer *)data;
|
|
|
self->open_session();
|
|
|
}), this);
|
|
|
+ gtk_widget_add_accelerator(item, "activate", _accel_group,
|
|
|
+ GDK_KEY_o, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
|
|
|
|
|
|
item = gtk_menu_item_new_with_mnemonic("Open _Last Session");
|
|
|
_open_last_session_menu_item = item;
|
|
|
@@ -564,6 +573,8 @@ setup_session_menu() {
|
|
|
GtkStatsServer *self = (GtkStatsServer *)data;
|
|
|
self->save_session();
|
|
|
}), this);
|
|
|
+ gtk_widget_add_accelerator(item, "activate", _accel_group,
|
|
|
+ GDK_KEY_s, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
|
|
|
|
|
|
item = gtk_menu_item_new_with_mnemonic("_Close Session");
|
|
|
_close_session_menu_item = item;
|
|
|
@@ -574,6 +585,8 @@ setup_session_menu() {
|
|
|
GtkStatsServer *self = (GtkStatsServer *)data;
|
|
|
self->close_session();
|
|
|
}), this);
|
|
|
+ gtk_widget_add_accelerator(item, "activate", _accel_group,
|
|
|
+ GDK_KEY_w, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
|
|
|
|
|
|
GtkWidget *sep = gtk_separator_menu_item_new();
|
|
|
gtk_menu_shell_append(GTK_MENU_SHELL(_session_menu), sep);
|
|
|
@@ -600,40 +613,10 @@ setup_session_menu() {
|
|
|
gtk_main_quit();
|
|
|
}
|
|
|
}), this);
|
|
|
+ gtk_widget_add_accelerator(item, "activate", _accel_group,
|
|
|
+ GDK_KEY_q, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
|
|
|
|
|
|
gtk_widget_show_all(_session_menu);
|
|
|
-
|
|
|
- /*
|
|
|
- _session_menu = CreatePopupMenu();
|
|
|
-
|
|
|
- MENUITEMINFO mii;
|
|
|
- memset(&mii, 0, sizeof(mii));
|
|
|
- mii.cbSize = sizeof(mii);
|
|
|
-
|
|
|
- mii.fMask = MIIM_STRING | MIIM_FTYPE | MIIM_SUBMENU;
|
|
|
- mii.fType = MFT_STRING;
|
|
|
- mii.hSubMenu = _session_menu;
|
|
|
-
|
|
|
- mii.dwTypeData = "&Session";
|
|
|
- InsertMenuItem(_menu_bar, GetMenuItemCount(_menu_bar), TRUE, &mii);
|
|
|
-
|
|
|
- AppendMenu(_session_menu, MF_STRING, MI_session_new, "&New Session\tCtrl+N");
|
|
|
- AppendMenu(_session_menu, MF_STRING, MI_session_open, "&Open Session...\tCtrl+O");
|
|
|
-
|
|
|
- if (_last_session.exists()) {
|
|
|
- AppendMenu(_session_menu, MF_STRING, MI_session_open_last, "Open &Last Session");
|
|
|
- } else {
|
|
|
- AppendMenu(_session_menu, MF_STRING | MF_DISABLED, MI_session_open_last, "Open &Last Session");
|
|
|
- }
|
|
|
-
|
|
|
- AppendMenu(_session_menu, MF_STRING | MF_DISABLED, MI_session_save, "&Save Session...\tCtrl+S");
|
|
|
- AppendMenu(_session_menu, MF_STRING | MF_DISABLED, MI_session_close, "&Close Session\tCtrl+W");
|
|
|
-
|
|
|
- AppendMenu(_session_menu, MF_SEPARATOR, 0, nullptr);
|
|
|
- AppendMenu(_session_menu, MF_STRING | MF_DISABLED, MI_session_export_json, "&Export as JSON...");
|
|
|
-
|
|
|
- AppendMenu(_session_menu, MF_SEPARATOR, 0, nullptr);
|
|
|
- AppendMenu(_session_menu, MF_STRING, MI_exit, "E&xit");*/
|
|
|
}
|
|
|
|
|
|
/**
|