89 lines
1.8 KiB
C
89 lines
1.8 KiB
C
/*
|
|
* screen.h
|
|
* This file is part of LCDd, the lcdproc server.
|
|
*
|
|
* This file is released under the GNU General Public License. Refer to the
|
|
* COPYING file distributed with this package.
|
|
*
|
|
* Copyright (c) 1999, William Ferrell, Scott Scriven
|
|
* 2003, Joris Robijn
|
|
*
|
|
*/
|
|
|
|
#include "menu.h"
|
|
#include "menuitem.h"
|
|
#include "client.h"
|
|
/* These headers are placed here on purpose ! (circular references) */
|
|
|
|
#ifndef SCREEN_H
|
|
#define SCREEN_H
|
|
|
|
#include "shared/LL.h"
|
|
#include "client.h"
|
|
|
|
typedef enum { PRI_HIDDEN, PRI_BACKGROUND, PRI_INFO, PRI_FOREGROUND,
|
|
PRI_ALERT, PRI_INPUT
|
|
} Priority;
|
|
|
|
typedef struct Screen {
|
|
char *id;
|
|
char *name;
|
|
int width, height;
|
|
int duration;
|
|
int timeout;
|
|
Priority priority;
|
|
short int heartbeat;
|
|
short int backlight;
|
|
short int cursor;
|
|
short int cursor_x;
|
|
short int cursor_y;
|
|
char *keys;
|
|
LinkedList *widgetlist;
|
|
struct Client *client;
|
|
} Screen;
|
|
|
|
#include "widget.h"
|
|
|
|
|
|
extern int default_duration ;
|
|
extern int default_priority ;
|
|
|
|
#include "client.h"
|
|
|
|
/* Creates a new screen */
|
|
Screen * screen_create (char * id, Client * client);
|
|
|
|
/* Destroys a screen */
|
|
int screen_destroy (Screen * s);
|
|
|
|
/* Add a widget to a screen */
|
|
int screen_add_widget (Screen * s, Widget * w);
|
|
|
|
/* Remove a widget from a screen (does not destroy it) */
|
|
int screen_remove_widget (Screen * s, Widget * w);
|
|
|
|
/* List functions */
|
|
static inline Widget * screen_getfirst_widget (Screen * s)
|
|
{
|
|
return (Widget *) ((s != NULL)
|
|
? LL_GetFirst(s->widgetlist)
|
|
: NULL);
|
|
}
|
|
|
|
static inline Widget * screen_getnext_widget (Screen * s)
|
|
{
|
|
return (Widget *) ((s != NULL)
|
|
? LL_GetNext(s->widgetlist)
|
|
: NULL);
|
|
}
|
|
|
|
|
|
/* Find a widget in a screen */
|
|
Widget *screen_find_widget (Screen * s, char *id);
|
|
|
|
/* Convert priority names to priority and vv */
|
|
Priority screen_pri_name_to_pri (char * pri_name);
|
|
char * screen_pri_to_pri_name (Priority pri);
|
|
|
|
#endif
|