summaryrefslogtreecommitdiffstats
path: root/IncSet.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--IncSet.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/IncSet.h b/IncSet.h
new file mode 100644
index 0000000..a84407e
--- /dev/null
+++ b/IncSet.h
@@ -0,0 +1,65 @@
+#ifndef HEADER_IncSet
+#define HEADER_IncSet
+/*
+htop - IncSet.h
+(C) 2005-2012 Hisham H. Muhammad
+Released under the GNU GPLv2+, see the COPYING file
+in the source distribution for its full text.
+*/
+
+#include <stdbool.h>
+#include <stddef.h>
+
+#include "FunctionBar.h"
+#include "Panel.h"
+#include "Vector.h"
+
+
+#define INCMODE_MAX 128
+
+typedef enum {
+ INC_SEARCH = 0,
+ INC_FILTER = 1
+} IncType;
+
+typedef struct IncMode_ {
+ char buffer[INCMODE_MAX + 1];
+ int index;
+ FunctionBar* bar;
+ bool isFilter;
+} IncMode;
+
+typedef struct IncSet_ {
+ IncMode modes[2];
+ IncMode* active;
+ Panel* panel;
+ FunctionBar* defaultBar;
+ bool filtering;
+ bool found;
+} IncSet;
+
+static inline const char* IncSet_filter(const IncSet* this) {
+ return this->filtering ? this->modes[INC_FILTER].buffer : NULL;
+}
+
+void IncSet_setFilter(IncSet* this, const char* filter);
+
+typedef const char* (*IncMode_GetPanelValue)(Panel*, int);
+
+void IncSet_reset(IncSet* this, IncType type);
+
+IncSet* IncSet_new(FunctionBar* bar);
+
+void IncSet_delete(IncSet* this);
+
+bool IncSet_handleKey(IncSet* this, int ch, Panel* panel, IncMode_GetPanelValue getPanelValue, Vector* lines);
+
+const char* IncSet_getListItemValue(Panel* panel, int i);
+
+void IncSet_activate(IncSet* this, IncType type, Panel* panel);
+
+void IncSet_drawBar(const IncSet* this, int attr);
+
+int IncSet_synthesizeEvent(IncSet* this, int x);
+
+#endif