Code

keyboard: move code to translate_key()
[ncmpc.git] / src / wreadln.h
index 270d73fb1d3e8d54084e2c882e949fded49a049a..f1108f66794bdea6e10dec09fcad7554982f6826 100644 (file)
@@ -1,25 +1,63 @@
+/* ncmpc (Ncurses MPD Client)
+ * (c) 2004-2017 The Music Player Daemon Project
+ * Project homepage: http://musicpd.org
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
 #ifndef WREADLN_H
 #define WREADLN_H
 
-/* max size allocated for a line */
-extern unsigned int wrln_max_line_size;
+#include "config.h"
+#include "ncmpc_curses.h"
+
+#include <glib.h>
+
+#ifndef NCMPC_MINI
 
-/* max items stored in the history list */
-extern unsigned int wrln_max_history_length;
+/* completion callback data */
+extern void *wrln_completion_callback_data;
 
-/* a callback function for KEY_RESIZE */
-extern GVoidFunc wrln_resize_callback;
+/* called after TAB is pressed but before g_completion_complete */
+typedef void (*wrln_gcmp_pre_cb_t) (GCompletion *gcmp, gchar *buf, void *data);
+extern wrln_gcmp_pre_cb_t wrln_pre_completion_callback;
+
+/* post completion callback */
+typedef void (*wrln_gcmp_post_cb_t) (GCompletion *gcmp, gchar *s, GList *l,
+                                    void *data);
+extern wrln_gcmp_post_cb_t wrln_post_completion_callback;
+
+#endif
 
-/* Note, wreadln calls curs_set() and noecho(), to enable cursor and 
+/* Note, wreadln calls curs_set() and noecho(), to enable cursor and
  * disable echo. wreadln will not restore these settings when exiting! */
-char *wreadln(WINDOW *w,           /* the curses window to use */
-             char *prompt,        /* the prompt string or NULL */
-             char *initial_value, /* initial value or NULL for a empty line
-                                   * (char *) -1 => get value from history */
-             int x1,              /* the maximum x position or 0 */
-             GList **history,     /* a pointer to a history list or NULL */ 
-             GCompletion *gcmp    /* a GCompletion structure or NULL */
-             );
+gchar *wreadln(WINDOW *w,            /* the curses window to use */
+              const gchar *prompt, /* the prompt string or NULL */
+              const gchar *initial_value, /* initial value or NULL for a empty line
+                                           * (char *) -1 = get value from history */
+              unsigned x1,              /* the maximum x position or 0 */
+              GList **history,     /* a pointer to a history list or NULL */
+              GCompletion *gcmp    /* a GCompletion structure or NULL */
+              );
 
+gchar *
+wreadln_masked(WINDOW *w,
+              const gchar *prompt,
+              const gchar *initial_value,
+              unsigned x1,
+              GList **history,
+              GCompletion *gcmp);
 
 #endif