Aditional remote command - window list
[geeqie.git] / src / layout.cc
index f955399..df0403f 100644 (file)
@@ -241,6 +241,41 @@ static void layout_box_folders_changed_cb(GtkWidget *widget, gpointer)
                }
 }
 
+static gint window_list_sort_cb(gconstpointer a, gconstpointer b)
+{
+       return CASE_SORT((gchar *)a, (gchar *)b);
+}
+
+GString *layout_get_window_list()
+{
+       LayoutWindow *lw;
+       GList *work;
+       GList *window_list = nullptr;
+       GString *ret = g_string_new(nullptr);
+
+       work = layout_window_list;
+       while (work)
+               {
+               lw = static_cast<LayoutWindow *>(work->data);
+               window_list = g_list_insert_sorted(window_list, g_strdup(lw->options.id), window_list_sort_cb);
+               work = work->next;
+               }
+
+       work = g_list_first(window_list);
+       g_string_append_printf(ret, "%s", (gchar *)work->data);
+       work = work->next;
+
+       while (work)
+               {
+               g_string_append_printf(ret, "\n%s", (gchar *)work->data);
+               work = work->next;
+               }
+
+       g_list_free(window_list);
+
+       return ret;
+}
+
 /*
  *-----------------------------------------------------------------------------
  * menu, toolbar, and dir view