* Please see COPYING for details
*
* Copyright (c) 2004, Hannu Saransaari and Lauri Hakkarainen
- * Copyright (c) 2005-2009 Brenden Matthews, Philip Kovacs, et. al.
+ * Copyright (c) 2005-2010 Brenden Matthews, Philip Kovacs, et. al.
* (see AUTHORS)
* All rights reserved.
*
#define _TEXT_OBJECT_H
#include "config.h" /* for the defines */
-#include "timed_thread.h" /* timed_thread */
-
-#ifdef TCP_PORT_MONITOR
-#include "tcp-portmon.h" /* tcp_port_monitor_data */
-#endif
-
-#include "mail.h" /* local_mail_s */
-#include "fs.h" /* struct fs_stat */
+#include "specials.h" /* enum special_types */
enum text_object_type {
OBJ_read_tcp,
#endif /* __linux__ */
#ifndef __OpenBSD__
OBJ_acpiacadapter,
- OBJ_adt746xcpu,
- OBJ_adt746xfan,
OBJ_acpifan,
OBJ_acpitemp,
OBJ_battery,
OBJ_font,
OBJ_cpu,
OBJ_cpubar,
-#ifdef X11
OBJ_cpugauge,
+#ifdef X11
OBJ_cpugraph,
OBJ_loadgraph,
#endif /* X11 */
OBJ_texeci,
OBJ_execbar,
OBJ_execibar,
-#ifdef X11
OBJ_execgauge,
+ OBJ_execigauge,
+#ifdef X11
OBJ_execgraph,
OBJ_execigraph,
- OBJ_execigauge,
#endif /* X11 */
OBJ_execp,
OBJ_execpi,
OBJ_unseen_mails,
OBJ_flagged_mails,
OBJ_unflagged_mails,
+ OBJ_format_time,
OBJ_forwarded_mails,
OBJ_unforwarded_mails,
OBJ_replied_mails,
OBJ_mem,
OBJ_memeasyfree,
OBJ_memfree,
-#ifdef X11
OBJ_memgauge,
+#ifdef X11
OBJ_memgraph,
#endif /* X11 */
OBJ_membar,
OBJ_mixer,
OBJ_mixerl,
OBJ_mixerr,
-#ifdef X11
OBJ_mixerbar,
OBJ_mixerlbar,
OBJ_mixerrbar,
-#endif /* X11 */
OBJ_if_mixer_mute,
#ifdef X11
OBJ_monitor,
#endif /* X11 */
OBJ_nameserver,
OBJ_nodename,
+ OBJ_nodename_short,
OBJ_nvidia,
OBJ_pre_exec,
+ OBJ_cmdline_to_pid,
+ OBJ_pid_chroot,
+ OBJ_pid_cmdline,
+ OBJ_pid_cwd,
+ OBJ_pid_environ,
+ OBJ_pid_environ_list,
+ OBJ_pid_exe,
+ OBJ_pid_nice,
+ OBJ_pid_openfiles,
+ OBJ_pid_parent,
+ OBJ_pid_priority,
+ OBJ_pid_state,
+ OBJ_pid_state_short,
+ OBJ_pid_stderr,
+ OBJ_pid_stdin,
+ OBJ_pid_stdout,
+ OBJ_pid_threads,
+ OBJ_pid_thread_list,
+ OBJ_pid_time_kernelmode,
+ OBJ_pid_time_usermode,
+ OBJ_pid_time,
+ OBJ_pid_uid,
+ OBJ_pid_euid,
+ OBJ_pid_suid,
+ OBJ_pid_fsuid,
+ OBJ_pid_gid,
+ OBJ_pid_egid,
+ OBJ_pid_sgid,
+ OBJ_pid_fsgid,
+ OBJ_pid_read,
+ OBJ_pid_vmpeak,
+ OBJ_pid_vmsize,
+ OBJ_pid_vmlck,
+ OBJ_pid_vmhwm,
+ OBJ_pid_vmrss,
+ OBJ_pid_vmdata,
+ OBJ_pid_vmstk,
+ OBJ_pid_vmexe,
+ OBJ_pid_vmlib,
+ OBJ_pid_vmpte,
+ OBJ_pid_write,
+ OBJ_gid_name,
+ OBJ_uid_name,
OBJ_processes,
OBJ_running_processes,
OBJ_shadecolor,
OBJ_swapperc,
OBJ_sysname,
OBJ_text,
+ OBJ_threads,
+ OBJ_running_threads,
OBJ_time,
OBJ_utime,
OBJ_tztime,
OBJ_user_names,
OBJ_user_terms,
OBJ_user_times,
+ OBJ_user_time,
OBJ_user_number,
OBJ_imap_messages,
OBJ_imap_unseen,
OBJ_lua,
OBJ_lua_parse,
OBJ_lua_bar,
+ OBJ_lua_gauge,
#ifdef X11
OBJ_lua_graph,
- OBJ_lua_gauge,
#endif /* X11 */
#endif /* HAVE_LUA */
#ifdef TCP_PORT_MONITOR
OBJ_apcupsd_linev,
OBJ_apcupsd_load,
OBJ_apcupsd_loadbar,
+ OBJ_apcupsd_loadgauge,
#ifdef X11
OBJ_apcupsd_loadgraph,
- OBJ_apcupsd_loadgauge,
#endif /* X11 */
OBJ_apcupsd_charge,
OBJ_apcupsd_timeleft,
struct text_object {
struct text_object *next, *prev; /* doubly linked list of text objects */
struct text_object *sub; /* for objects parsing text into objects */
+ struct text_object *ifblock_next; /* jump target for ifblock objects */
union {
void *opaque; /* new style generic per object data */
char *s; /* some string */
int i; /* some integer */
- long l; /* some other integer */
- unsigned int sensor;
- struct net_stat *net;
- struct fs_stat *fs;
- struct diskio_stat *diskio;
- unsigned char loadavg[3];
- unsigned int cpu_index;
- struct mail_s *mail;
-
- struct {
- char *args;
- char *output;
- } mboxscan;
-
- struct {
- char *tz; /* timezone variable */
- char *fmt; /* time display formatting */
- } tztime;
-
- struct {
- struct fs_stat *fs;
- int w, h;
- } fsbar; /* 3 */
-
-#ifdef X11
- struct {
- int l;
- int w, h;
- } mixerbar; /* 3 */
-#endif
-
- struct {
- int fd;
- int arg;
- char devtype[256];
- char type[64];
- float factor, offset;
- } sysfs;
-
- struct {
- struct text_object *next;
- char *s;
- int i;
- char *str;
- } ifblock;
-
- struct {
- int num;
- int type;
- int was_parsed;
- char *s;
- } top;
-
- struct {
- int wantedlines;
- char *logfile;
- char *buffer;
- int current_use;
- int max_uses;
- } headtail;
-
- struct {
- double last_update;
- float interval;
- char *cmd;
- char *buffer;
- double data;
- timed_thread *p_timed_thread;
- } execi; /* 5 */
-
- struct {
- int a, b;
- } pair; /* 2 */
-#ifdef TCP_PORT_MONITOR
- struct tcp_port_monitor_data tcp_port_monitor;
-#endif
-#ifdef EVE
- struct {
- char *apikey;
- char *charid;
- char *userid;
- } eve;
-#endif
-#ifdef HAVE_CURL
- struct {
- char *uri;
- float interval;
- } curl;
-#endif
-#ifdef RSS
- struct {
- char *uri;
- char *action;
- int act_par;
- float interval;
- unsigned int nrspaces;
- } rss;
-#endif
-#ifdef WEATHER
- struct {
- char *uri;
- char *data_type;
- int interval;
- } weather;
-#endif
-#ifdef XOAP
- struct {
- char *uri;
- unsigned int day;
- char *data_type;
- int interval;
- } weather_forecast;
-#endif
- struct {
- char *text;
- unsigned int show;
- unsigned int step;
- unsigned int start;
- long resetcolor;
- } scroll;
-
- struct {
- char *left;
- char *seperation;
- char *right;
- } combine;
-
- struct {
- char *host;
- unsigned int port;
- } read_tcp;
-
- struct local_mail_s local_mail;
+ long l; /* some long integer */
} data;
+
+ void *special_data;
int type;
- int a, b;
long line;
- unsigned int c, d, e;
- float f;
- char char_a, char_b;
};
/* text object list helpers */