From 267014cbfe584ff9a1bc74d671f8aaa27251fd49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= Date: Sat, 21 Nov 2020 21:40:08 +0100 Subject: Add support to change numeric options in settings screen Like delay or highlightDelaySecs --- OptionItem.h | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 OptionItem.h (limited to 'OptionItem.h') diff --git a/OptionItem.h b/OptionItem.h new file mode 100644 index 00000000..8dd802d9 --- /dev/null +++ b/OptionItem.h @@ -0,0 +1,70 @@ +#ifndef HEADER_OptionItem +#define HEADER_OptionItem +/* +htop - OptionItem.h +(C) 2004-2011 Hisham H. Muhammad +Released under the GNU GPLv2, see the COPYING file +in the source distribution for its full text. +*/ + +#include + +#include "Object.h" + + +enum OptionItemType { + OPTION_ITEM_CHECK, + OPTION_ITEM_NUMBER, +}; + +typedef struct OptionItemClass_ { + const ObjectClass super; + + enum OptionItemType kind; +} OptionItemClass; + +#define As_OptionItem(this_) ((const OptionItemClass*)((this_)->super.klass)) +#define OptionItem_kind(this_) As_OptionItem(this_)->kind + +typedef struct OptionItem_ { + Object super; + + char* text; +} OptionItem; + +typedef struct CheckItem_ { + OptionItem super; + + bool* ref; + bool value; +} CheckItem; + +typedef struct NumberItem_ { + OptionItem super; + + char* text; + int* ref; + int value; + int scale; + int min; + int max; +} NumberItem; + +extern const OptionItemClass OptionItem_class; +extern const OptionItemClass CheckItem_class; +extern const OptionItemClass NumberItem_class; + +CheckItem* CheckItem_newByRef(const char* text, bool* ref); +CheckItem* CheckItem_newByVal(const char* text, bool value); +bool CheckItem_get(const CheckItem* this); +void CheckItem_set(CheckItem* this, bool value); +void CheckItem_toggle(CheckItem* this); + +NumberItem* NumberItem_newByRef(const char* text, int* ref, int scale, int min, int max); +NumberItem* NumberItem_newByVal(const char* text, int value, int scale, int min, int max); +int NumberItem_get(const NumberItem* this); +void NumberItem_decrease(NumberItem* this); +void NumberItem_increase(NumberItem* this); +void NumberItem_toggle(NumberItem* this); + +#endif -- cgit v1.2.3