summaryrefslogtreecommitdiff
path: root/plugins/gtkui
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/gtkui')
-rw-r--r--plugins/gtkui/callbacks.c10
-rw-r--r--plugins/gtkui/callbacks.h8
-rw-r--r--plugins/gtkui/deadbeef.glade320
-rw-r--r--plugins/gtkui/gtkui.c19
-rw-r--r--plugins/gtkui/interface.c141
-rw-r--r--plugins/gtkui/prefwin.c85
-rw-r--r--plugins/gtkui/support.h2
7 files changed, 282 insertions, 303 deletions
diff --git a/plugins/gtkui/callbacks.c b/plugins/gtkui/callbacks.c
index 9c95c29d..1fe82216 100644
--- a/plugins/gtkui/callbacks.c
+++ b/plugins/gtkui/callbacks.c
@@ -1194,3 +1194,13 @@ on_sortfmt_activate (GtkEntry *entry,
}
+
+GtkWidget*
+create_plugin_weblink (gchar *widget_name, gchar *string1, gchar *string2,
+ gint int1, gint int2)
+{
+ GtkWidget *link = gtk_link_button_new_with_label ("", "WWW");
+ gtk_widget_set_sensitive (link, FALSE);
+ return link;
+}
+
diff --git a/plugins/gtkui/callbacks.h b/plugins/gtkui/callbacks.h
index 2de5e663..297a605a 100644
--- a/plugins/gtkui/callbacks.h
+++ b/plugins/gtkui/callbacks.h
@@ -1058,3 +1058,11 @@ on_dsp_preset_save_clicked (GtkButton *button,
void
on_dsp_preset_load_clicked (GtkButton *button,
gpointer user_data);
+
+void
+on_plug_copyright_clicked (GtkButton *button,
+ gpointer user_data);
+
+GtkWidget*
+create_plugin_weblink (gchar *widget_name, gchar *string1, gchar *string2,
+ gint int1, gint int2);
diff --git a/plugins/gtkui/deadbeef.glade b/plugins/gtkui/deadbeef.glade
index 1b320bd6..c9ef1312 100644
--- a/plugins/gtkui/deadbeef.glade
+++ b/plugins/gtkui/deadbeef.glade
@@ -5102,249 +5102,138 @@ SOCKS5_HOSTNAME</property>
<property name="spacing">8</property>
<child>
- <widget class="GtkHBox" id="hbox16">
+ <widget class="GtkScrolledWindow" id="scrolledwindow8">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">8</property>
-
- <child>
- <widget class="GtkLabel" id="label11">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Description:</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
- <widget class="GtkEntry" id="pref_plugin_descr">
+ <widget class="GtkTextView" id="plug_description">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">False</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
+ <property name="overwrite">False</property>
+ <property name="accepts_tab">True</property>
+ <property name="justification">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap_mode">GTK_WRAP_NONE</property>
+ <property name="cursor_visible">False</property>
+ <property name="pixels_above_lines">0</property>
+ <property name="pixels_below_lines">0</property>
+ <property name="pixels_inside_wrap">0</property>
+ <property name="left_margin">0</property>
+ <property name="right_margin">0</property>
+ <property name="indent">0</property>
<property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">●</property>
- <property name="activates_default">False</property>
</widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
</packing>
</child>
<child>
- <widget class="GtkHBox" id="hbox17">
+ <widget class="GtkHBox" id="hbox20">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">8</property>
-
- <child>
- <widget class="GtkLabel" id="label12">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Author(s):</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
+ <property name="spacing">0</property>
<child>
- <widget class="GtkEntry" id="pref_plugin_author">
+ <widget class="GtkButton" id="configure_plugin">
<property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="can_focus">True</property>
- <property name="editable">False</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">●</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox18">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">8</property>
-
- <child>
- <widget class="GtkLabel" id="label13">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Email:</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <signal name="clicked" handler="on_configure_plugin_clicked" last_modification_time="Tue, 01 Dec 2009 16:54:36 GMT"/>
- <child>
- <widget class="GtkEntry" id="pref_plugin_email">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">False</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">●</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
+ <child>
+ <widget class="GtkAlignment" id="alignment15">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">0</property>
+ <property name="right_padding">0</property>
- <child>
- <widget class="GtkHBox" id="hbox19">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">8</property>
+ <child>
+ <widget class="GtkHBox" id="hbox56">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
- <child>
- <widget class="GtkLabel" id="label14">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Website:</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
+ <child>
+ <widget class="GtkImage" id="image394">
+ <property name="visible">True</property>
+ <property name="stock">gtk-preferences</property>
+ <property name="icon_size">4</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
- <child>
- <widget class="GtkEntry" id="pref_plugin_website">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">False</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">●</property>
- <property name="activates_default">False</property>
+ <child>
+ <widget class="GtkLabel" id="label92">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Configure</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
- <property name="fill">True</property>
+ <property name="fill">False</property>
</packing>
</child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox20">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
<child>
- <widget class="GtkButton" id="configure_plugin">
+ <widget class="GtkButton" id="plug_copyright">
<property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
- <signal name="clicked" handler="on_configure_plugin_clicked" last_modification_time="Tue, 01 Dec 2009 16:54:36 GMT"/>
+ <signal name="clicked" handler="on_plug_copyright_clicked" last_modification_time="Sun, 27 Feb 2011 10:24:22 GMT"/>
<child>
- <widget class="GtkAlignment" id="alignment15">
+ <widget class="GtkAlignment" id="alignment20">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
@@ -5356,15 +5245,15 @@ SOCKS5_HOSTNAME</property>
<property name="right_padding">0</property>
<child>
- <widget class="GtkHBox" id="hbox56">
+ <widget class="GtkHBox" id="hbox88">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">2</property>
<child>
- <widget class="GtkImage" id="image394">
+ <widget class="GtkImage" id="image521">
<property name="visible">True</property>
- <property name="stock">gtk-preferences</property>
+ <property name="stock">gtk-about</property>
<property name="icon_size">4</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
@@ -5379,9 +5268,9 @@ SOCKS5_HOSTNAME</property>
</child>
<child>
- <widget class="GtkLabel" id="label92">
+ <widget class="GtkLabel" id="label117">
<property name="visible">True</property>
- <property name="label" translatable="yes">Configure</property>
+ <property name="label" translatable="yes">Copyright</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -5413,6 +5302,21 @@ SOCKS5_HOSTNAME</property>
<property name="fill">False</property>
</packing>
</child>
+
+ <child>
+ <widget class="Custom" id="weblink">
+ <property name="visible">True</property>
+ <property name="creation_function">create_plugin_weblink</property>
+ <property name="int1">0</property>
+ <property name="int2">0</property>
+ <property name="last_modification_time">Sun, 27 Feb 2011 11:39:00 GMT</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="padding">0</property>
diff --git a/plugins/gtkui/gtkui.c b/plugins/gtkui/gtkui.c
index d49be24c..a5a6c696 100644
--- a/plugins/gtkui/gtkui.c
+++ b/plugins/gtkui/gtkui.c
@@ -1272,8 +1272,23 @@ static ddb_gtkui_t plugin = {
.gui.plugin.id = "gtkui",
.gui.plugin.name = "Standard GTK2 user interface",
.gui.plugin.descr = "Default DeaDBeeF GUI",
- .gui.plugin.author = "Alexey Yakovenko",
- .gui.plugin.email = "waker@users.sourceforge.net",
+ .gui.plugin.copyright =
+ "Copyright (C) 2009-2011 Alexey Yakovenko <waker@users.sourceforge.net>\n"
+ "\n"
+ "This program is free software; you can redistribute it and/or\n"
+ "modify it under the terms of the GNU General Public License\n"
+ "as published by the Free Software Foundation; either version 2\n"
+ "of the License, or (at your option) any later version.\n"
+ "\n"
+ "This program is distributed in the hope that it will be useful,\n"
+ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+ "GNU General Public License for more details.\n"
+ "\n"
+ "You should have received a copy of the GNU General Public License\n"
+ "along with this program; if not, write to the Free Software\n"
+ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n"
+ ,
.gui.plugin.website = "http://deadbeef.sf.net",
.gui.plugin.start = gtkui_start,
.gui.plugin.stop = gtkui_stop,
diff --git a/plugins/gtkui/interface.c b/plugins/gtkui/interface.c
index b694214a..214cca9b 100644
--- a/plugins/gtkui/interface.c
+++ b/plugins/gtkui/interface.c
@@ -1751,24 +1751,20 @@ create_prefwin (void)
GtkWidget *scrolledwindow2;
GtkWidget *pref_pluginlist;
GtkWidget *vbox12;
- GtkWidget *hbox16;
- GtkWidget *label11;
- GtkWidget *pref_plugin_descr;
- GtkWidget *hbox17;
- GtkWidget *label12;
- GtkWidget *pref_plugin_author;
- GtkWidget *hbox18;
- GtkWidget *label13;
- GtkWidget *pref_plugin_email;
- GtkWidget *hbox19;
- GtkWidget *label14;
- GtkWidget *pref_plugin_website;
+ GtkWidget *scrolledwindow8;
+ GtkWidget *plug_description;
GtkWidget *hbox20;
GtkWidget *configure_plugin;
GtkWidget *alignment15;
GtkWidget *hbox56;
GtkWidget *image394;
GtkWidget *label92;
+ GtkWidget *plug_copyright;
+ GtkWidget *alignment20;
+ GtkWidget *hbox88;
+ GtkWidget *image521;
+ GtkWidget *label117;
+ GtkWidget *weblink;
GtkWidget *label3;
GtkWidget *dialog_action_area2;
GtkWidget *closebutton1;
@@ -2513,65 +2509,17 @@ create_prefwin (void)
gtk_paned_pack2 (GTK_PANED (hpaned1), vbox12, TRUE, TRUE);
gtk_container_set_border_width (GTK_CONTAINER (vbox12), 12);
- hbox16 = gtk_hbox_new (FALSE, 8);
- gtk_widget_show (hbox16);
- gtk_box_pack_start (GTK_BOX (vbox12), hbox16, FALSE, FALSE, 0);
-
- label11 = gtk_label_new (_("Description:"));
- gtk_widget_show (label11);
- gtk_box_pack_start (GTK_BOX (hbox16), label11, FALSE, FALSE, 0);
- gtk_misc_set_alignment (GTK_MISC (label11), 0, 0.5);
-
- pref_plugin_descr = gtk_entry_new ();
- gtk_widget_show (pref_plugin_descr);
- gtk_box_pack_start (GTK_BOX (hbox16), pref_plugin_descr, TRUE, TRUE, 0);
- gtk_editable_set_editable (GTK_EDITABLE (pref_plugin_descr), FALSE);
- gtk_entry_set_invisible_char (GTK_ENTRY (pref_plugin_descr), 9679);
-
- hbox17 = gtk_hbox_new (FALSE, 8);
- gtk_widget_show (hbox17);
- gtk_box_pack_start (GTK_BOX (vbox12), hbox17, FALSE, FALSE, 0);
-
- label12 = gtk_label_new (_("Author(s):"));
- gtk_widget_show (label12);
- gtk_box_pack_start (GTK_BOX (hbox17), label12, FALSE, FALSE, 0);
- gtk_misc_set_alignment (GTK_MISC (label12), 0, 0.5);
-
- pref_plugin_author = gtk_entry_new ();
- gtk_widget_show (pref_plugin_author);
- gtk_box_pack_start (GTK_BOX (hbox17), pref_plugin_author, TRUE, TRUE, 0);
- gtk_editable_set_editable (GTK_EDITABLE (pref_plugin_author), FALSE);
- gtk_entry_set_invisible_char (GTK_ENTRY (pref_plugin_author), 9679);
-
- hbox18 = gtk_hbox_new (FALSE, 8);
- gtk_widget_show (hbox18);
- gtk_box_pack_start (GTK_BOX (vbox12), hbox18, FALSE, FALSE, 0);
-
- label13 = gtk_label_new (_("Email:"));
- gtk_widget_show (label13);
- gtk_box_pack_start (GTK_BOX (hbox18), label13, FALSE, FALSE, 0);
- gtk_misc_set_alignment (GTK_MISC (label13), 0, 0.5);
-
- pref_plugin_email = gtk_entry_new ();
- gtk_widget_show (pref_plugin_email);
- gtk_box_pack_start (GTK_BOX (hbox18), pref_plugin_email, TRUE, TRUE, 0);
- gtk_editable_set_editable (GTK_EDITABLE (pref_plugin_email), FALSE);
- gtk_entry_set_invisible_char (GTK_ENTRY (pref_plugin_email), 9679);
-
- hbox19 = gtk_hbox_new (FALSE, 8);
- gtk_widget_show (hbox19);
- gtk_box_pack_start (GTK_BOX (vbox12), hbox19, FALSE, FALSE, 0);
-
- label14 = gtk_label_new (_("Website:"));
- gtk_widget_show (label14);
- gtk_box_pack_start (GTK_BOX (hbox19), label14, FALSE, FALSE, 0);
- gtk_misc_set_alignment (GTK_MISC (label14), 0, 0.5);
-
- pref_plugin_website = gtk_entry_new ();
- gtk_widget_show (pref_plugin_website);
- gtk_box_pack_start (GTK_BOX (hbox19), pref_plugin_website, TRUE, TRUE, 0);
- gtk_editable_set_editable (GTK_EDITABLE (pref_plugin_website), FALSE);
- gtk_entry_set_invisible_char (GTK_ENTRY (pref_plugin_website), 9679);
+ scrolledwindow8 = gtk_scrolled_window_new (NULL, NULL);
+ gtk_widget_show (scrolledwindow8);
+ gtk_box_pack_start (GTK_BOX (vbox12), scrolledwindow8, TRUE, TRUE, 0);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow8), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+ gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow8), GTK_SHADOW_IN);
+
+ plug_description = gtk_text_view_new ();
+ gtk_widget_show (plug_description);
+ gtk_container_add (GTK_CONTAINER (scrolledwindow8), plug_description);
+ gtk_text_view_set_editable (GTK_TEXT_VIEW (plug_description), FALSE);
+ gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (plug_description), FALSE);
hbox20 = gtk_hbox_new (FALSE, 0);
gtk_widget_show (hbox20);
@@ -2580,6 +2528,7 @@ create_prefwin (void)
configure_plugin = gtk_button_new ();
gtk_widget_show (configure_plugin);
gtk_box_pack_start (GTK_BOX (hbox20), configure_plugin, TRUE, FALSE, 0);
+ gtk_widget_set_sensitive (configure_plugin, FALSE);
alignment15 = gtk_alignment_new (0.5, 0.5, 0, 0);
gtk_widget_show (alignment15);
@@ -2597,6 +2546,33 @@ create_prefwin (void)
gtk_widget_show (label92);
gtk_box_pack_start (GTK_BOX (hbox56), label92, FALSE, FALSE, 0);
+ plug_copyright = gtk_button_new ();
+ gtk_widget_show (plug_copyright);
+ gtk_box_pack_start (GTK_BOX (hbox20), plug_copyright, TRUE, FALSE, 0);
+ gtk_widget_set_sensitive (plug_copyright, FALSE);
+
+ alignment20 = gtk_alignment_new (0.5, 0.5, 0, 0);
+ gtk_widget_show (alignment20);
+ gtk_container_add (GTK_CONTAINER (plug_copyright), alignment20);
+
+ hbox88 = gtk_hbox_new (FALSE, 2);
+ gtk_widget_show (hbox88);
+ gtk_container_add (GTK_CONTAINER (alignment20), hbox88);
+
+ image521 = gtk_image_new_from_stock ("gtk-about", GTK_ICON_SIZE_BUTTON);
+ gtk_widget_show (image521);
+ gtk_box_pack_start (GTK_BOX (hbox88), image521, FALSE, FALSE, 0);
+
+ label117 = gtk_label_new_with_mnemonic (_("Copyright"));
+ gtk_widget_show (label117);
+ gtk_box_pack_start (GTK_BOX (hbox88), label117, FALSE, FALSE, 0);
+
+ weblink = create_plugin_weblink ("weblink", "", "", 0, 0);
+ gtk_widget_show (weblink);
+ gtk_box_pack_start (GTK_BOX (hbox20), weblink, TRUE, FALSE, 0);
+ GTK_WIDGET_UNSET_FLAGS (weblink, GTK_CAN_FOCUS);
+ GTK_WIDGET_UNSET_FLAGS (weblink, GTK_CAN_DEFAULT);
+
label3 = gtk_label_new (_("Plugins"));
gtk_widget_show (label3);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), 7), label3);
@@ -2791,6 +2767,9 @@ create_prefwin (void)
g_signal_connect ((gpointer) configure_plugin, "clicked",
G_CALLBACK (on_configure_plugin_clicked),
NULL);
+ g_signal_connect ((gpointer) plug_copyright, "clicked",
+ G_CALLBACK (on_plug_copyright_clicked),
+ NULL);
/* Store pointers to all widgets, for use by lookup_widget(). */
GLADE_HOOKUP_OBJECT_NO_REF (prefwin, prefwin, "prefwin");
@@ -2946,24 +2925,20 @@ create_prefwin (void)
GLADE_HOOKUP_OBJECT (prefwin, scrolledwindow2, "scrolledwindow2");
GLADE_HOOKUP_OBJECT (prefwin, pref_pluginlist, "pref_pluginlist");
GLADE_HOOKUP_OBJECT (prefwin, vbox12, "vbox12");
- GLADE_HOOKUP_OBJECT (prefwin, hbox16, "hbox16");
- GLADE_HOOKUP_OBJECT (prefwin, label11, "label11");
- GLADE_HOOKUP_OBJECT (prefwin, pref_plugin_descr, "pref_plugin_descr");
- GLADE_HOOKUP_OBJECT (prefwin, hbox17, "hbox17");
- GLADE_HOOKUP_OBJECT (prefwin, label12, "label12");
- GLADE_HOOKUP_OBJECT (prefwin, pref_plugin_author, "pref_plugin_author");
- GLADE_HOOKUP_OBJECT (prefwin, hbox18, "hbox18");
- GLADE_HOOKUP_OBJECT (prefwin, label13, "label13");
- GLADE_HOOKUP_OBJECT (prefwin, pref_plugin_email, "pref_plugin_email");
- GLADE_HOOKUP_OBJECT (prefwin, hbox19, "hbox19");
- GLADE_HOOKUP_OBJECT (prefwin, label14, "label14");
- GLADE_HOOKUP_OBJECT (prefwin, pref_plugin_website, "pref_plugin_website");
+ GLADE_HOOKUP_OBJECT (prefwin, scrolledwindow8, "scrolledwindow8");
+ GLADE_HOOKUP_OBJECT (prefwin, plug_description, "plug_description");
GLADE_HOOKUP_OBJECT (prefwin, hbox20, "hbox20");
GLADE_HOOKUP_OBJECT (prefwin, configure_plugin, "configure_plugin");
GLADE_HOOKUP_OBJECT (prefwin, alignment15, "alignment15");
GLADE_HOOKUP_OBJECT (prefwin, hbox56, "hbox56");
GLADE_HOOKUP_OBJECT (prefwin, image394, "image394");
GLADE_HOOKUP_OBJECT (prefwin, label92, "label92");
+ GLADE_HOOKUP_OBJECT (prefwin, plug_copyright, "plug_copyright");
+ GLADE_HOOKUP_OBJECT (prefwin, alignment20, "alignment20");
+ GLADE_HOOKUP_OBJECT (prefwin, hbox88, "hbox88");
+ GLADE_HOOKUP_OBJECT (prefwin, image521, "image521");
+ GLADE_HOOKUP_OBJECT (prefwin, label117, "label117");
+ GLADE_HOOKUP_OBJECT (prefwin, weblink, "weblink");
GLADE_HOOKUP_OBJECT (prefwin, label3, "label3");
GLADE_HOOKUP_OBJECT_NO_REF (prefwin, dialog_action_area2, "dialog_action_area2");
GLADE_HOOKUP_OBJECT (prefwin, closebutton1, "closebutton1");
diff --git a/plugins/gtkui/prefwin.c b/plugins/gtkui/prefwin.c
index b27af570..09fb62eb 100644
--- a/plugins/gtkui/prefwin.c
+++ b/plugins/gtkui/prefwin.c
@@ -758,23 +758,41 @@ on_pref_pluginlist_cursor_changed (GtkTreeView *treeview,
DB_plugin_t *p = plugins[*indices];
g_free (indices);
assert (p);
- GtkWidget *w = prefwin;//GTK_WIDGET (gtk_widget_get_parent_window (GTK_WIDGET (treeview)));
+ GtkWidget *w = prefwin;
assert (w);
- GtkEntry *e = GTK_ENTRY (lookup_widget (w, "pref_plugin_descr"));
- gtk_entry_set_text (e, p->descr ? p->descr : "");
- e = GTK_ENTRY (lookup_widget (w, "pref_plugin_author"));
- gtk_entry_set_text (e, p->author ? p->author : "");
- e = GTK_ENTRY (lookup_widget (w, "pref_plugin_email"));
- gtk_entry_set_text (e, p->email ? p->email : "");
- e = GTK_ENTRY (lookup_widget (w, "pref_plugin_website"));
- gtk_entry_set_text (e, p->website ? p->website : "");
+ if (p->descr) {
+ GtkTextView *tv = GTK_TEXT_VIEW (lookup_widget (w, "plug_description"));
+
+ GtkTextBuffer *buffer = gtk_text_buffer_new (NULL);
+
+ gtk_text_buffer_set_text (buffer, p->descr, strlen(p->descr));
+ gtk_text_view_set_buffer (GTK_TEXT_VIEW (tv), buffer);
+ g_object_unref (buffer);
+ }
+
+ GtkWidget *link = lookup_widget (w, "weblink");
+ if (p->website) {
+ gtk_link_button_set_uri (GTK_LINK_BUTTON(link), p->website);
+ gtk_widget_set_sensitive (link, TRUE);
+ }
+ else {
+ gtk_link_button_set_uri (GTK_LINK_BUTTON(link), "");
+ gtk_widget_set_sensitive (link, FALSE);
+ }
+
+ GtkWidget *cpr = lookup_widget (w, "plug_copyright");
+ if (p->copyright) {
+ gtk_widget_set_sensitive (cpr, TRUE);
+ }
+ else {
+ gtk_widget_set_sensitive (cpr, FALSE);
+ }
gtk_widget_set_sensitive (lookup_widget (prefwin, "configure_plugin"), p->configdialog ? TRUE : FALSE);
}
void
gtkui_conf_get_str (const char *key, char *value, int len, const char *def) {
- // FIXME: conf_get_str must be changed
strcpy (value, deadbeef->conf_get_str (key, def));
}
@@ -1327,3 +1345,50 @@ on_auto_name_playlist_from_folder_toggled
deadbeef->conf_set_int ("gtkui.name_playlist_from_folder", active);
}
+void
+on_info_window_delete (GtkWidget *widget, GtkTextDirection previous_direction, GtkWidget **pwindow);
+
+static void
+show_copyright_window (const char *text, const char *title, GtkWidget **pwindow) {
+ if (*pwindow) {
+ return;
+ }
+ GtkWidget *widget = *pwindow = create_helpwindow ();
+ g_object_set_data (G_OBJECT (widget), "pointer", pwindow);
+ g_signal_connect (widget, "delete_event", G_CALLBACK (on_info_window_delete), pwindow);
+ gtk_window_set_title (GTK_WINDOW (widget), title);
+ gtk_window_set_transient_for (GTK_WINDOW (widget), GTK_WINDOW (prefwin));
+ GtkWidget *txt = lookup_widget (widget, "helptext");
+ GtkTextBuffer *buffer = gtk_text_buffer_new (NULL);
+
+ gtk_text_buffer_set_text (buffer, text, strlen(text));
+ gtk_text_view_set_buffer (GTK_TEXT_VIEW (txt), buffer);
+ g_object_unref (buffer);
+ gtk_widget_show (widget);
+}
+
+static GtkWidget *copyright_window;
+
+void
+on_plug_copyright_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ GtkTreeView *treeview = GTK_TREE_VIEW(lookup_widget (prefwin, "pref_pluginlist"));
+ GtkTreePath *path;
+ GtkTreeViewColumn *col;
+ gtk_tree_view_get_cursor (treeview, &path, &col);
+ if (!path || !col) {
+ // reset
+ return;
+ }
+ int *indices = gtk_tree_path_get_indices (path);
+ DB_plugin_t **plugins = deadbeef->plug_get_list ();
+ DB_plugin_t *p = plugins[*indices];
+ g_free (indices);
+ assert (p);
+
+ if (p->copyright) {
+ show_copyright_window (p->copyright, "Copyright", &copyright_window);
+ }
+}
+
diff --git a/plugins/gtkui/support.h b/plugins/gtkui/support.h
index a32649e5..b4b0ace3 100644
--- a/plugins/gtkui/support.h
+++ b/plugins/gtkui/support.h
@@ -27,7 +27,9 @@
# define dgettext(Domain,Message) (Message)
# define dcgettext(Domain,Message,Type) (Message)
# define bindtextdomain(Domain,Directory) (Domain)
+#ifndef _
# define _(String) (String)
+#endif
# define Q_(String) g_strip_context ((String), (String))
# define N_(String) (String)
#endif