chiark / gitweb /
disobedience state monitoring -> separate source file
[disorder] / disobedience / disobedience.h
index 59cc6e9b22c8678d7acc0e21f59397e9ce6d59b9..6a68b9ae9eda137bf8c49ac5e9b26216e70a5950 100644 (file)
@@ -89,6 +89,8 @@ extern int volume_l, volume_r;          /* current volume */
 extern double goesupto;                 /* volume upper bound */
 extern int choosealpha;                 /* break up choose by letter */
 
+extern const disorder_eclient_log_callbacks log_callbacks;
+
 /* Functions --------------------------------------------------------------- */
 
 disorder_eclient *gtkclient(void);
@@ -111,6 +113,8 @@ GdkPixbuf *find_image(const char *name);
 void popup_error(const char *msg);
 /* Pop up an error message */
 
+void all_update(void);
+/* Update everything */
 
 /* Main menu */
 
@@ -167,6 +171,35 @@ GtkWidget *choose_widget(void);
 void choose_update(void);
 /* Called when we think the choose tree might need updating */
 
+/* Widget leakage debugging rubbish ---------------------------------------- */
+
+#if MDEBUG
+#define NW(what) do {                                   \
+  if(++current##what % 100 > max##what) {               \
+    fprintf(stderr, "%s:%d: %d %s\n",                   \
+            __FILE__, __LINE__, current##what, #what);  \
+    max##what = current##what;                          \
+  }                                                     \
+} while(0)
+#define WT(what) static int current##what, max##what
+#define DW(what) (--current##what)
+#else
+#define NW(what) do { } while(0)
+#define DW(what) do { } while(0)
+#define WT(what) struct neverused
+#endif
+
+#if MTRACK
+extern const char *mtag;
+#define MTAG(x) do { mtag = x; } while(0)
+#define MTAG_PUSH(x) do { const char *save_mtag = mtag; mtag = x; (void)0
+#define MTAG_POP() mtag = save_mtag; } while(0)
+#else
+#define MTAG(x) do { } while(0)
+#define MTAG_PUSH(x) do {} while(0)
+#define MTAG_POP() do {} while(0)
+#endif
+
 #endif /* DISOBEDIENCE_H */
 
 /*