Mercurial > hg > forks > yadex
view src/entry2.h @ 117:0612954ba99c default tip
Cosmetics.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Mon, 06 Oct 2014 16:36:48 +0300 |
parents | a68786b9c74b |
children |
line wrap: on
line source
/* * entry2.h * A string entry box class * AYM 1999-04-12 */ #ifndef YH_ENTRY2 /* To prevent multiple inclusion */ #define YH_ENTRY2 /* To prevent multiple inclusion */ typedef enum { ACT_NONE, ACT_VALID, ACT_CANCEL } Entry2_action_t; class Entry2 { typedef enum // Strictly private to the class { FF_TYPE = 0xf000, // Type mask FF_ENTRY = 0x0000, // Entry FF_CHECK = 0x1000, // Check button (unimplemented) FF_RADIO = 0x2000, // Radio button (unimplemented) FF_BUTTON = 0x3000, // Button (unimplemented) FF_SUBTYPE = 0x0f00, // Subtype mask FF_STRING = 0x0000, // Entry: String entry FF_INTEGER = 0x0100, // Entry: Integer entry FF_UPPERCASE = 0x0001, // String entry: upper-case everything FF_NONEMPTY = 0x0002, // String entry: can't be empty FF_SIGNED = 0x0001, // Integer entry: it can be signed (unimplemented) FF_INTSIZE = 0x000e, // Integer entry: size mask FF_CHAR = 0x0000, // char (signed or unsigned) FF_SHORT = 0x0002, // short (signed or unsigned) FF_INT = 0x0004, // int (signed or unsigned) FF_SIZE_T = 0x0006, // size_t FF_LONG = 0x0008, // long (signed or unsigned) FF__ } _field_flags_t; public:Entry2(const char *title, const char *fmt, ...); ~Entry2(); int loop(); Entry2_action_t process_event(const input_status_t & is); void refresh(); private: int count_widgets(const char *fmt); int fill_in_widgets_info(const char *fmt, va_list args); void do_geom(); void jump_to_field(size_t field_no); void prev_field(); void next_field(); // Per-field data unsigned short *box_len; char **buf; unsigned short *buf_max_len; const char **caption; bool *entry_drawn; _field_flags_t *entry_flags; // Input bool first_key; size_t field_no; size_t nfields; // General display stuff const char *title; bool background_drawn; // Geometry constants int entry_hofs; int entry_vofs; int win_hofs; int win_vofs; int title_vspacing; // Geometry stuff bool geom_up_to_date; int outer_width; int outer_height; int vstep; int win_x0; int win_y0; int win_x1; int win_y1; int title_x0; int title_y0; int caption_x0; int caption_y0; int entry_box_x0; int entry_box_y0; int entry_box_x1; int entry_box_y1; int entry_text_x0; int entry_text_y0; int entry_text_x1; int entry_text_y1; // Convenience functions. bool is_integer_entry(_field_flags_t flags) { return (flags & FF_TYPE) == FF_ENTRY && (flags & FF_SUBTYPE) == FF_INTEGER; } bool is_string_entry(_field_flags_t flags) { return (flags & FF_TYPE) == FF_ENTRY && (flags & FF_SUBTYPE) == FF_STRING; } }; #endif /* DO NOT ADD ANYTHING AFTER THIS LINE */