Include a Other Software section in Help file
[geeqie.git] / src / ui_misc.c
index a5e905d..c2d59b8 100644 (file)
@@ -89,7 +89,12 @@ GtkWidget *pref_group_new(GtkWidget *parent_box, gboolean fill,
        gtk_widget_show(vbox);
 
        label = gtk_label_new(text);
+#if GTK_CHECK_VERSION(3,16,0)
+       gtk_label_set_xalign(GTK_LABEL(label), 0.0);
+       gtk_label_set_yalign(GTK_LABEL(label), 0.5);
+#else
        gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+#endif
        pref_label_bold(label, TRUE, FALSE);
 
        gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
@@ -265,7 +270,12 @@ GtkWidget *pref_button_new(GtkWidget *parent_box, const gchar *stock_id,
                if (text)
                        {
                        label = gtk_label_new_with_mnemonic(text);
+#if GTK_CHECK_VERSION(3,16,0)
+                       gtk_label_set_xalign(GTK_LABEL(label), 0.5);
+                       gtk_label_set_yalign(GTK_LABEL(label), 0.5);
+#else
                        gtk_misc_set_alignment(GTK_MISC(label), 0.5, 0.5);
+#endif
                        gtk_label_set_mnemonic_widget(GTK_LABEL(label), button);
                        }
 
@@ -1732,4 +1742,69 @@ gchar *text_widget_text_pull(GtkWidget *text_widget)
 
 }
 
+gchar *text_widget_text_pull_selected(GtkWidget *text_widget)
+{
+       if (GTK_IS_TEXT_VIEW(text_widget))
+               {
+               GtkTextBuffer *buffer;
+               GtkTextIter start, end;
+
+               buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_widget));
+               gtk_text_buffer_get_bounds(buffer, &start, &end);
+
+               if (gtk_text_buffer_get_selection_bounds(buffer, &start, &end))
+                       {
+                       gtk_text_iter_set_line_offset(&start, 0);
+                       gtk_text_iter_forward_to_line_end(&end);
+                       }
+
+               return gtk_text_buffer_get_text(buffer, &start, &end, FALSE);
+               }
+       else if (GTK_IS_ENTRY(text_widget))
+               {
+               return g_strdup(gtk_entry_get_text(GTK_ENTRY(text_widget)));
+               }
+       else
+               {
+               return NULL;
+               }
+}
+
+gboolean defined_mouse_buttons(GtkWidget *widget, GdkEventButton *event, gpointer data)
+{
+       LayoutWindow *lw = data;
+       GtkAction *action;
+       gboolean ret = FALSE;
+
+       switch (event->button)
+               {
+               case MOUSE_BUTTON_8:
+                       if (options->mouse_button_8)
+                               {
+                               action = gtk_action_group_get_action(lw->action_group, options->mouse_button_8);
+                               if (action)
+                                       {
+                                       gtk_action_activate(action);
+                                       }
+                               ret = TRUE;
+                               }
+                               break;
+               case MOUSE_BUTTON_9:
+                       if (options->mouse_button_9)
+                               {
+                               action = gtk_action_group_get_action(lw->action_group, options->mouse_button_9);
+                               if (action)
+                                       {
+                                       gtk_action_activate(action);
+                                       }
+                               ret = TRUE;
+                               }
+                       break;
+               default:
+                       break;
+               }
+
+       return ret;
+}
+
 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */