Mercurial > pidgin
view finch/libgnt/gnt.h @ 27657:f3809e302ec7
merge of '50e2f2c66f304a73c2a9ef4d912be5e3f2ed39a5'
and '73a88ac85b97264c19b9a9966270eecd310b6bff'
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Tue, 21 Jul 2009 06:16:43 +0000 |
parents | 8df78c06d10e |
children |
line wrap: on
line source
/** * @defgroup gnt GNT (GLib Ncurses Toolkit) * * GNT is an ncurses toolkit for creating text-mode graphical user interfaces * in a fast and easy way. */ /** * @file gnt.h GNT API * @ingroup gnt */ /* * GNT - The GLib Ncurses Toolkit * * GNT is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * * This library 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 02111-1301 USA */ #ifndef GNT_H #define GNT_H #include <glib.h> #include "gntwidget.h" #include "gntclipboard.h" #include "gntcolors.h" #include "gntkeys.h" /** * Get things to compile in Glib < 2.8 */ #if !GLIB_CHECK_VERSION(2,8,0) #define G_PARAM_STATIC_NAME G_PARAM_PRIVATE #define G_PARAM_STATIC_NICK G_PARAM_PRIVATE #define G_PARAM_STATIC_BLURB G_PARAM_PRIVATE #endif #if !GLIB_CHECK_VERSION(2,14,0) #define g_timeout_add_seconds(time, callback, data) g_timeout_add(time * 1000, callback, data) #endif /** * Initialize GNT. */ void gnt_init(void); /** * Start running the mainloop for gnt. */ void gnt_main(void); /** * Check whether the terminal is capable of UTF8 display. * * @return @c FALSE if the terminal is capable of drawing UTF-8, @c TRUE otherwise. */ gboolean gnt_ascii_only(void); /** * Present a window. If the event was triggered because of user interaction, * the window is moved to the foreground. Otherwise, the Urgent hint is set. * * @param window The window the present. * * @since 2.0.0 (gnt), 2.1.0 (pidgin) */ void gnt_window_present(GntWidget *window); /** * @internal * Use #gnt_widget_show instead. */ void gnt_screen_occupy(GntWidget *widget); /** * @internal * Use #gnt_widget_hide instead. */ void gnt_screen_release(GntWidget *widget); /** * @internal * Use #gnt_widget_draw instead. */ void gnt_screen_update(GntWidget *widget); /** * Resize a widget. * * @param widget The widget to resize. * @param width The desired width. * @param height The desired height. */ void gnt_screen_resize_widget(GntWidget *widget, int width, int height); /** * Move a widget. * * @param widget The widget to move. * @param x The desired x-coordinate. * @param y The desired y-coordinate. */ void gnt_screen_move_widget(GntWidget *widget, int x, int y); /** * Rename a widget. * * @param widget The widget to rename. * @param text The new name for the widget. */ void gnt_screen_rename_widget(GntWidget *widget, const char *text); /** * Check whether a widget has focus. * * @param widget The widget. * * @return @c TRUE if the widget has the current focus, @c FALSE otherwise. */ gboolean gnt_widget_has_focus(GntWidget *widget); /** * Set the URGENT hint for a widget. * * @param widget The widget to set the URGENT hint for. */ void gnt_widget_set_urgent(GntWidget *widget); /** * Register a global action. * * @param label The user-visible label for the action. * @param callback The callback function for the action. */ void gnt_register_action(const char *label, void (*callback)(void)); /** * Show a menu. * * @param menu The menu to display. * * @return @c TRUE if the menu is displayed, @c FALSE otherwise (e.g., if another menu is currently displayed). */ gboolean gnt_screen_menu_show(gpointer menu); /** * Terminate the mainloop of gnt. */ void gnt_quit(void); /** * Get the global clipboard. * * @return The clipboard. */ GntClipboard * gnt_get_clipboard(void); /** * Get the string in the clipboard. * * @return A copy of the string in the clipboard. The caller must @c g_free the string. */ gchar * gnt_get_clipboard_string(void); /** * Set the contents of the global clipboard. * * @param string The new content of the new clipboard. */ void gnt_set_clipboard_string(const gchar *string); /** * Spawn a different application that will consume the console. * * @param wd The working directory for the new application. * @param argv The argument vector. * @param envp The environment, or @c NULL. * @param stin Location to store the child's stdin, or @c NULL. * @param stout Location to store the child's stdout, or @c NULL. * @param sterr Location to store the child's stderr, or @c NULL. * @param callback The callback to call after the child exits. * @param data The data to pass to the callback. * * @return @c TRUE if the child was successfully spawned, @c FALSE otherwise. */ gboolean gnt_giveup_console(const char *wd, char **argv, char **envp, gint *stin, gint *stout, gint *sterr, void (*callback)(int status, gpointer data), gpointer data); /** * Check whether a child process is in control of the current terminal. * * @return @c TRUE if a child process (eg., PAGER) is occupying the current * terminal, @c FALSE otherwise. */ gboolean gnt_is_refugee(void); #endif /* GNT_H */