summaryrefslogtreecommitdiff
path: root/callbacks.c
diff options
context:
space:
mode:
authorGravatar Alexey Yakovenko <wakeroid@gmail.com>2009-10-04 21:51:41 +0200
committerGravatar Alexey Yakovenko <wakeroid@gmail.com>2009-10-04 22:01:47 +0200
commited7b5e99bfb98d8ec57f4bccda0d691a1d19081c (patch)
tree42f43cf7d82eb0110afec205423ed97165590bf4 /callbacks.c
parentb7ed1da166a14f2efe485a9889bf86d304d6bef3 (diff)
replaced crappy gtk about dialog with better one
Diffstat (limited to 'callbacks.c')
-rw-r--r--callbacks.c57
1 files changed, 33 insertions, 24 deletions
diff --git a/callbacks.c b/callbacks.c
index 7613a8f5..1dd4f940 100644
--- a/callbacks.c
+++ b/callbacks.c
@@ -26,6 +26,7 @@
#include <unistd.h>
#include <assert.h>
#include <ctype.h>
+#include <gdk/gdkkeysyms.h>
#include "callbacks.h"
#include "interface.h"
@@ -47,13 +48,6 @@
#include "plugins.h"
-//#include "cmp3.h"
-//#include "cvorbis.h"
-//#include "cdumb.h"
-//#include "cgme.h"
-//#include "cflac.h"
-//#include "csid.h"
-
extern GtkWidget *mainwin;
extern gtkplaylist_t main_playlist;
extern gtkplaylist_t search_playlist;
@@ -425,15 +419,6 @@ on_crop1_activate (GtkMenuItem *menuitem,
}
-void
-on_about1_activate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkWidget *d = create_aboutdialog ();
- gtk_dialog_run (GTK_DIALOG (d));
- gtk_widget_destroy (d);
-}
-
gboolean
on_playlist_scroll_event (GtkWidget *widget,
@@ -1225,20 +1210,15 @@ on_find_activate (GtkMenuItem *menuitem,
search_start ();
}
-
-
-
-
void
-on_help1_activate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
+show_info_window (const char *fname, const char *title) {
GtkWidget *widget = create_helpwindow ();
+ gtk_window_set_title (GTK_WINDOW (widget), title);
gtk_window_set_transient_for (GTK_WINDOW (widget), GTK_WINDOW (mainwin));
GtkWidget *txt = lookup_widget (widget, "helptext");
GtkTextBuffer *buffer = gtk_text_buffer_new (NULL);
- FILE *fp = fopen (PREFIX "/share/doc/deadbeef/help.txt", "rb");
+ FILE *fp = fopen (fname, "rb");
if (fp) {
fseek (fp, 0, SEEK_END);
size_t s = ftell (fp);
@@ -1260,9 +1240,24 @@ on_help1_activate (GtkMenuItem *menuitem,
gtk_text_buffer_set_text (buffer, error, strlen (error));
}
gtk_text_view_set_buffer (GTK_TEXT_VIEW (txt), buffer);
+ g_object_unref (buffer);
gtk_widget_show (widget);
}
+void
+on_help1_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+ show_info_window (PREFIX "/share/doc/deadbeef/help.txt", "Help");
+}
+
+void
+on_about1_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+ show_info_window (PREFIX "/share/doc/deadbeef/about.txt", "About DeaDBeeF " VERSION);
+}
+
void
on_playhscroll_value_changed (GtkRange *widget,
@@ -1283,3 +1278,17 @@ on_searchhscroll_value_changed (GtkRange *widget,
gtkpl_hscroll (ps, newscroll);
}
+
+gboolean
+on_helpwindow_key_press_event (GtkWidget *widget,
+ GdkEventKey *event,
+ gpointer user_data)
+{
+ if (event->keyval == GDK_Escape) {
+ gtk_widget_hide (widget);
+ gtk_widget_destroy (widget);
+// g_object_unref (widget);
+ }
+ return FALSE;
+}
+