added dbus support
[monky] / src / text_object.h
index 0c1c3f4..53a71fb 100644 (file)
@@ -1,4 +1,6 @@
-/* Conky, a system monitor, based on torsmo
+/* -*- mode: c; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: t -*-
+ *
+ * Conky, a system monitor, based on torsmo
  *
  * Any original torsmo code is licensed under the BSD license
  *
@@ -7,7 +9,7 @@
  * 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 */
-
-#ifdef NVIDIA
-#include "nvidia.h"            /* nvidia_s */
-#endif
+#include "specials.h"          /* enum special_types */
 
 enum text_object_type {
        OBJ_read_tcp,
@@ -49,15 +40,17 @@ enum text_object_type {
 #endif /* __linux__ */
 #ifndef __OpenBSD__
        OBJ_acpiacadapter,
-       OBJ_adt746xcpu,
-       OBJ_adt746xfan,
        OBJ_acpifan,
        OBJ_acpitemp,
        OBJ_battery,
        OBJ_battery_time,
+       OBJ_battery_temp,
+       OBJ_battery_volts,
        OBJ_battery_percent,
        OBJ_battery_bar,
        OBJ_battery_short,
+       OBJ_cell_radio_dbm,
+       OBJ_cell_radio_percent,
 #endif /* !__OpenBSD__ */
        OBJ_buffers,
        OBJ_cached,
@@ -78,8 +71,8 @@ enum text_object_type {
        OBJ_font,
        OBJ_cpu,
        OBJ_cpubar,
-#ifdef X11
        OBJ_cpugauge,
+#ifdef X11
        OBJ_cpugraph,
        OBJ_loadgraph,
 #endif /* X11 */
@@ -105,11 +98,11 @@ enum text_object_type {
        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,
@@ -151,9 +144,7 @@ enum text_object_type {
        OBJ_ibm_volume,
        OBJ_ibm_brightness,
        OBJ_smapi,
-#ifdef X11
        OBJ_smapi_bat_bar,
-#endif /* X11 */
        OBJ_smapi_bat_perc,
        OBJ_smapi_bat_temp,
        OBJ_smapi_bat_power,
@@ -207,6 +198,7 @@ enum text_object_type {
        OBJ_unseen_mails,
        OBJ_flagged_mails,
        OBJ_unflagged_mails,
+       OBJ_format_time,
        OBJ_forwarded_mails,
        OBJ_unforwarded_mails,
        OBJ_replied_mails,
@@ -217,8 +209,8 @@ enum text_object_type {
        OBJ_mem,
        OBJ_memeasyfree,
        OBJ_memfree,
-#ifdef X11
        OBJ_memgauge,
+#ifdef X11
        OBJ_memgraph,
 #endif /* X11 */
        OBJ_membar,
@@ -227,31 +219,79 @@ enum text_object_type {
        OBJ_mixer,
        OBJ_mixerl,
        OBJ_mixerr,
-#ifdef X11
        OBJ_mixerbar,
        OBJ_mixerlbar,
        OBJ_mixerrbar,
-#endif /* X11 */
        OBJ_if_mixer_mute,
 #ifdef X11
        OBJ_monitor,
        OBJ_monitor_number,
+       OBJ_desktop,
+       OBJ_desktop_number,
+       OBJ_desktop_name,
 #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_outlinecolor,
        OBJ_stippled_hr,
        OBJ_swap,
+       OBJ_swapfree,
        OBJ_swapbar,
        OBJ_swapmax,
        OBJ_swapperc,
        OBJ_sysname,
        OBJ_text,
+       OBJ_threads,
+       OBJ_running_threads,
        OBJ_time,
        OBJ_utime,
        OBJ_tztime,
@@ -268,6 +308,7 @@ enum text_object_type {
        OBJ_user_names,
        OBJ_user_terms,
        OBJ_user_times,
+       OBJ_user_time,
        OBJ_user_number,
        OBJ_imap_messages,
        OBJ_imap_unseen,
@@ -371,17 +412,25 @@ enum text_object_type {
 #ifdef EVE
        OBJ_eve,
 #endif /* EVE */
+#ifdef HAVE_CURL
+       OBJ_curl,
+#endif /* HAVE_CURL */
 #ifdef RSS
        OBJ_rss,
 #endif /* RSS */
+#ifdef WEATHER
+       OBJ_weather,
+#endif /* WEATHER */
+#ifdef XOAP
+       OBJ_weather_forecast,
+#endif /* XOAP */
 #ifdef HAVE_LUA
        OBJ_lua,
        OBJ_lua_parse,
-       OBJ_lua_read_parse,
        OBJ_lua_bar,
+       OBJ_lua_gauge,
 #ifdef X11
        OBJ_lua_graph,
-       OBJ_lua_gauge,
 #endif /* X11 */
 #endif /* HAVE_LUA */
 #ifdef TCP_PORT_MONITOR
@@ -394,6 +443,9 @@ enum text_object_type {
 #ifdef HDDTEMP
        OBJ_hddtemp,
 #endif /* HDDTEMP */
+       OBJ_include,
+       OBJ_blink,
+       OBJ_to_bytes,
        OBJ_scroll,
        OBJ_combine,
        OBJ_entropy_avail,
@@ -410,9 +462,9 @@ enum text_object_type {
        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,
@@ -424,151 +476,17 @@ enum text_object_type {
 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;
-                       int readlines;
-                       char *logfile;
-                       double last_update;
-                       float interval;
-                       char *buffer;
-                       /* If not -1, a file descriptor to read from when
-                        * logfile is a FIFO. */
-                       int fd;
-               } tail;
-
-               struct {
-                       double last_update;
-                       float interval;
-                       char *cmd;
-                       char *buffer;
-                       double data;
-               } execi;                /* 5 */
-
-               struct {
-                       float interval;
-                       char *cmd;
-                       char *buffer;
-                       double data;
-                       timed_thread *p_timed_thread;
-               } texeci;
-
-               struct {
-                       int a, b;
-               } pair;                 /* 2 */
-#ifdef TCP_PORT_MONITOR
-               struct tcp_port_monitor_data tcp_port_monitor;
-#endif
-#ifdef HDDTEMP
-               struct {
-                       char *addr;
-                       int port;
-                       char *dev;
-                       double update_time;
-                       char *temp;
-               } hddtemp;              /* 2 */
-#endif
-#ifdef EVE
-               struct {
-                       char *apikey;
-                       char *charid;
-                       char *userid;
-               } eve;
-#endif
-#ifdef RSS
-               struct {
-                       char *uri;
-                       char *action;
-                       int act_par;
-                       int delay;
-                       unsigned int nrspaces;
-               } rss;
-#endif
-               struct {
-                       char *text;
-                       unsigned int show;
-                       unsigned int step;
-                       unsigned int start;
-               } scroll;
-
-               struct {
-                       char *left;
-                       char *seperation;
-                       char *right;
-               } combine;
-
-               struct {
-                       char *host;
-                       unsigned int port;
-               } read_tcp;
-
-               struct local_mail_s local_mail;
-#ifdef NVIDIA
-               struct nvidia_s nvidia;
-#endif /* NVIDIA */
-
+               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 */