[awesome-menu] Documente code
Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
parent
e43ca13b6c
commit
ff44fc44ca
|
@ -49,26 +49,39 @@
|
||||||
|
|
||||||
#define CLEANMASK(mask) (mask & ~(globalconf.numlockmask | LockMask))
|
#define CLEANMASK(mask) (mask & ~(globalconf.numlockmask | LockMask))
|
||||||
|
|
||||||
|
/** awesome-menu run status */
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
|
/** Stop awesome-menu */
|
||||||
STOP = 0,
|
STOP = 0,
|
||||||
|
/** Run awesome-menu */
|
||||||
RUN = 1,
|
RUN = 1,
|
||||||
|
/** Stop awesome-menu and cancel any operation */
|
||||||
CANCEL = 2
|
CANCEL = 2
|
||||||
} status_t;
|
} status_t;
|
||||||
|
|
||||||
|
/** Is awesome-menu running ? */
|
||||||
static status_t status = RUN;
|
static status_t status = RUN;
|
||||||
|
|
||||||
/** Import awesome config file format */
|
/** Import awesome config file format */
|
||||||
extern cfg_opt_t awesome_opts[];
|
extern cfg_opt_t awesome_opts[];
|
||||||
|
|
||||||
|
/** Item_t typedef */
|
||||||
typedef struct item_t item_t;
|
typedef struct item_t item_t;
|
||||||
|
/** Item_t structure */
|
||||||
struct item_t
|
struct item_t
|
||||||
{
|
{
|
||||||
|
/** Data */
|
||||||
char *data;
|
char *data;
|
||||||
|
/** Previous and next elems in item_t list */
|
||||||
item_t *prev, *next;
|
item_t *prev, *next;
|
||||||
|
/** True if the item currently matches */
|
||||||
Bool match;
|
Bool match;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** Destructor for item structure
|
||||||
|
* \param item item pointer
|
||||||
|
*/
|
||||||
static void
|
static void
|
||||||
item_delete(item_t **item)
|
item_delete(item_t **item)
|
||||||
{
|
{
|
||||||
|
@ -111,6 +124,10 @@ typedef struct
|
||||||
|
|
||||||
static AwesomeMenuConf globalconf;
|
static AwesomeMenuConf globalconf;
|
||||||
|
|
||||||
|
/** Exit with given exit code
|
||||||
|
* \param exit_code exit code
|
||||||
|
* \return never returns
|
||||||
|
*/
|
||||||
static void __attribute__ ((noreturn))
|
static void __attribute__ ((noreturn))
|
||||||
exit_help(int exit_code)
|
exit_help(int exit_code)
|
||||||
{
|
{
|
||||||
|
@ -120,6 +137,15 @@ exit_help(int exit_code)
|
||||||
exit(exit_code);
|
exit(exit_code);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Parse configuration file and fill up AwesomeMenuConf
|
||||||
|
* data structures with configuration directives.
|
||||||
|
* \param screen screen number
|
||||||
|
* \param confpatharg configuration file pathname, or NULL if auto
|
||||||
|
* \param menu_title menu title
|
||||||
|
* \param geometry geometry to fill up with supplied information from
|
||||||
|
* configuration file
|
||||||
|
* \return cfg_parse status
|
||||||
|
*/
|
||||||
static int
|
static int
|
||||||
config_parse(int screen, const char *confpatharg,
|
config_parse(int screen, const char *confpatharg,
|
||||||
const char *menu_title, area_t *geometry)
|
const char *menu_title, area_t *geometry)
|
||||||
|
@ -203,6 +229,10 @@ config_parse(int screen, const char *confpatharg,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Return the last word for a text.
|
||||||
|
* \param text the text to look into
|
||||||
|
* \return a pointer to the last word position in text
|
||||||
|
*/
|
||||||
static char *
|
static char *
|
||||||
get_last_word(char *text)
|
get_last_word(char *text)
|
||||||
{
|
{
|
||||||
|
@ -216,6 +246,10 @@ get_last_word(char *text)
|
||||||
return last_word;
|
return last_word;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Fill the completion list for awesome-menu with file list.
|
||||||
|
* \param directory directory to look into
|
||||||
|
* \return always true
|
||||||
|
*/
|
||||||
static Bool
|
static Bool
|
||||||
item_list_fill_file(const char *directory)
|
item_list_fill_file(const char *directory)
|
||||||
{
|
{
|
||||||
|
@ -324,8 +358,7 @@ complete(Bool reverse)
|
||||||
globalconf.item_selected = item;
|
globalconf.item_selected = item;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/*
|
/* Since loop is 2, it will be 1 at first iter, and then 0 if we
|
||||||
* Since loop is 2, it will be 1 at first iter, and then 0 if we
|
|
||||||
* get back before matching an item (i.e. no items match) to the
|
* get back before matching an item (i.e. no items match) to the
|
||||||
* first elem: so it will break the loop, otherwise it loops for
|
* first elem: so it will break the loop, otherwise it loops for
|
||||||
* ever
|
* ever
|
||||||
|
@ -335,6 +368,9 @@ complete(Bool reverse)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Compute a match from completion list for word.
|
||||||
|
* \param word the word to match
|
||||||
|
*/
|
||||||
static void
|
static void
|
||||||
compute_match(const char *word)
|
compute_match(const char *word)
|
||||||
{
|
{
|
||||||
|
@ -368,6 +404,7 @@ compute_match(const char *word)
|
||||||
/* Why not? */
|
/* Why not? */
|
||||||
#define MARGIN 10
|
#define MARGIN 10
|
||||||
|
|
||||||
|
/** Redraw the menu. */
|
||||||
static void
|
static void
|
||||||
redraw(void)
|
redraw(void)
|
||||||
{
|
{
|
||||||
|
@ -451,6 +488,9 @@ redraw(void)
|
||||||
XSync(globalconf.display, False);
|
XSync(globalconf.display, False);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Handle keypress event in awesome-menu.
|
||||||
|
* \param e received XKeyEvent
|
||||||
|
*/
|
||||||
static void
|
static void
|
||||||
handle_kpress(XKeyEvent *e)
|
handle_kpress(XKeyEvent *e)
|
||||||
{
|
{
|
||||||
|
@ -563,6 +603,9 @@ handle_kpress(XKeyEvent *e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Fill the completion by reading on stdin.
|
||||||
|
* \return true if something has been filled up, false otherwise.
|
||||||
|
*/
|
||||||
static Bool
|
static Bool
|
||||||
item_list_fill_stdin(void)
|
item_list_fill_stdin(void)
|
||||||
{
|
{
|
||||||
|
@ -595,6 +638,11 @@ item_list_fill_stdin(void)
|
||||||
return has_entry;
|
return has_entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Main function of awesome-menu.
|
||||||
|
* \param argc number of elements in argv
|
||||||
|
* \param argv arguments array
|
||||||
|
* \return EXIT_SUCCESS
|
||||||
|
*/
|
||||||
int
|
int
|
||||||
main(int argc, char **argv)
|
main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue