1
0
Fork 0
mirror of https://github.com/davatorium/rofi.git synced 2024-11-11 13:50:48 -05:00
rofi/include/rofi.h

100 lines
3.2 KiB
C
Raw Normal View History

2015-07-27 04:17:12 -04:00
#ifndef ROFI_MAIN_H
#define ROFI_MAIN_H
#include <X11/X.h>
#include <X11/Xlib.h>
#include <glib.h>
2015-09-26 14:34:34 -04:00
#include <string.h>
#include <stdlib.h>
#include "timings.h"
#include "keyb.h"
2016-01-07 13:47:37 -05:00
#include "mode.h"
2016-01-07 10:01:56 -05:00
/**
* @defgroup Main Main
* @{
*/
2014-11-25 02:27:08 -05:00
/**
* Pointer to xdg cache directory.
*/
2014-01-25 17:37:37 -05:00
extern const char *cache_dir;
typedef struct MenuState MenuState;
2014-06-02 06:54:35 -04:00
/**
2016-01-07 13:47:37 -05:00
* @param msg The error message to show.
* @param markup The error message uses pango markup.
2014-11-25 02:27:08 -05:00
*
2016-01-07 13:47:37 -05:00
* The error message to show.
2014-11-25 02:27:08 -05:00
*/
2016-01-07 13:47:37 -05:00
void error_dialog ( const char *msg, int markup );
2014-03-22 16:04:19 -04:00
typedef enum
{
MENU_NORMAL = 0,
MENU_PASSWORD = 1
} MenuFlags;
2015-11-24 16:02:30 -05:00
/**
* @param sw the Mode to show.
2015-11-24 16:02:30 -05:00
* @param lines An array of strings to display.
* @param num_lines Length of the array with strings to display.
* @param input A pointer to a string where the inputted data is placed.
* @param prompt The prompt to show.
* @param shift pointer to integer that is set to the state of the shift key.
* @param mmc Menu menu match callback, used for matching user input.
* @param mmc_data data to pass to mmc.
* @param selected_line pointer to integer holding the selected line.
* @param message Extra message to display.
* @param flags Flags indicating state of the menu.
2015-11-24 16:02:30 -05:00
*
* Main menu callback.
*
* @returns The command issued (see MenuReturn)
*/
MenuState *menu ( Mode *sw,
char *input, char *prompt,
const char *message, MenuFlags flags )
__attribute__ ( ( nonnull ( 1, 2, 3 ) ) );
2014-02-03 16:49:07 -05:00
2016-01-07 10:01:56 -05:00
/** Reset terminal */
#define color_reset "\033[0m"
/** Set terminal text bold */
#define color_bold "\033[1m"
/** Set terminal text italic */
#define color_italic "\033[2m"
/** Set terminal foreground text green */
#define color_green "\033[0;32m"
2016-01-07 13:47:37 -05:00
/**
* @param msg The error message to show.
* @param markup If the message contains pango markup.
*
* Create a dialog showing the msg.
*
* @returns EXIT_FAILURE if failed to create dialog, EXIT_SUCCESS if succesfull
*/
int show_error_message ( const char *msg, int markup );
#define ERROR_MSG( a ) a "\n" \
"If you suspect this is caused by a bug in rofi,\n" \
"please report the following information to rofi's github page:\n" \
" * The generated commandline output when the error occored.\n" \
" * Output of -dump-xresource\n" \
" * Steps to reproduce\n" \
" * The version of rofi you are running\n\n" \
" <i>https://github.com/DaveDavenport/rofi/</i>"
#define ERROR_MSG_MARKUP TRUE
MenuReturn menu_state_get_return_value ( const MenuState *state );
unsigned int menu_state_get_selected_line ( const MenuState *state );
unsigned int menu_state_get_next_position ( const MenuState *state );
void menu_state_itterrate ( MenuState *state, XEvent *event );
unsigned int menu_state_get_completed ( const MenuState *state );
const char * menu_state_get_user_input ( const MenuState *state );
void menu_state_free ( MenuState *state );
void menu_state_restart ( MenuState *state );
void menu_state_set_selected_line ( MenuState *state, unsigned int selected_line );
void menu_state_queue_redraw ( void );
2016-01-26 02:37:40 -05:00
void menu_state_set_active ( MenuState *state );
2016-01-07 10:01:56 -05:00
/*@}*/
#endif