public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sven Eden" <sven.eden@gmx.de>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/ufed:master commit in: /
Date: Wed, 11 Sep 2013 06:04:08 +0000 (UTC)	[thread overview]
Message-ID: <1378845815.3e73393774bc02d67915fbb77854ac9489084ee1.yamakuzure@gentoo> (raw)

commit:     3e73393774bc02d67915fbb77854ac9489084ee1
Author:     Sven Eden <yamakuzure <AT> gmx <DOT> net>
AuthorDate: Tue Sep 10 20:43:35 2013 +0000
Commit:     Sven Eden <sven.eden <AT> gmx <DOT> de>
CommitDate: Tue Sep 10 20:43:35 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/ufed.git;a=commit;h=3e733937

Changed key help display to show the next state instead of a fixed text.

---
 ufed-curses-checklist.c | 63 +++++++++++++++++++++++---------------------
 ufed-curses.c           | 69 +++++++++++++++++++++++++++++++++++--------------
 2 files changed, 83 insertions(+), 49 deletions(-)

diff --git a/ufed-curses-checklist.c b/ufed-curses-checklist.c
index 8a39fac..39f4a8d 100644
--- a/ufed-curses-checklist.c
+++ b/ufed-curses-checklist.c
@@ -480,9 +480,10 @@ static int callback(sFlag** curr, int key)
 			break;
 
 		case KEY_F(5):
-			if      (eScope_local  == e_scope) e_scope = eScope_all;
-			else if (eScope_global == e_scope) e_scope = eScope_local;
-			else                               e_scope = eScope_global;
+			if (eScope_local  == e_scope)
+				e_scope = eScope_all;
+			else
+				++e_scope;
 
 			if ( !isFlagLegal(*curr)
 			  && !setNextItem(0, true)
@@ -493,9 +494,11 @@ static int callback(sFlag** curr, int key)
 			break;
 
 		case KEY_F(6):
-			if      (eState_installed    == e_state) e_state = eState_notinstalled;
-			else if (eState_notinstalled == e_state) e_state = eState_all;
-			else                                     e_state = eState_installed;
+			if (eState_notinstalled == e_state)
+				e_state = eState_all;
+			else
+				++e_state;
+
 
 			if ( !isFlagLegal(*curr)
 			  && !setNextItem(0, true)
@@ -506,9 +509,10 @@ static int callback(sFlag** curr, int key)
 			break;
 
 		case KEY_F(7):
-			if      (eMask_masked   == e_mask) e_mask = eMask_unmasked;
-			else if (eMask_unmasked == e_mask) e_mask = eMask_both;
-			else                               e_mask = eMask_masked;
+			if      (eMask_both   == e_mask)
+				e_mask = eMask_unmasked;
+			else
+				++e_mask;
 
 			if ( !isFlagLegal(*curr)
 			  && !setNextItem(0, true)
@@ -520,8 +524,10 @@ static int callback(sFlag** curr, int key)
 			break;
 
 		case KEY_F(9):
-			if (eOrder_left == e_order) e_order = eOrder_right;
-			else                        e_order = eOrder_left;
+			if (eOrder_left == e_order)
+				e_order = eOrder_right;
+			else
+				e_order = eOrder_left;
 
 			drawFlags();
 			drawBottom(true);
@@ -529,8 +535,10 @@ static int callback(sFlag** curr, int key)
 			break;
 
 		case KEY_F(10):
-			if (eDesc_ori == e_desc) e_desc = eDesc_alt;
-			else                     e_desc = eDesc_ori;
+			if (eDesc_ori == e_desc)
+				e_desc = eDesc_alt;
+			else
+				e_desc = eDesc_ori;
 
 			drawFlags();
 			drawBottom(true);
@@ -639,25 +647,20 @@ int main(void)
 	initcurses();
 
 	/* The keys to use differ whether ro_mode is true or false */
-#define mkKey(x) x, sizeof(x)-1
 	sKey keys[] = {
-		{ '?',       mkKey("?: Help"),            0 },
-		{ '\n',      mkKey(ro_mode ?
-							"Enter: Exit"
-						:	"Enter: Save"),       0 },
-		{ '\033',    mkKey(ro_mode ?
-							"Esc: Exit"
-						:	"Esc: Cancel"),       0 },
-		{ -1,        mkKey("Toggle"),             1 },
-		{ KEY_F( 5), mkKey("F5: Local/Global"),   1 },
-		{ KEY_F( 6), mkKey("F6: Installed"),      1 },
-		{ KEY_F( 7), mkKey("F7: Masked/Forced"),  1 },
-		{ -1,        mkKey("      "),             2 },
-		{ KEY_F( 9), mkKey("F9: Swap Pkg/Desc"),  2 },
-		{ KEY_F(10), mkKey("F10: Strip Desc"),    2 },
-		{ '\0',      mkKey(""),                   0 }
+		/* Row 0 - General keys */
+		MAKE_KEY('?',    "?:",     "Help",   "",     "", NULL,           0),
+		MAKE_KEY('\n',   "Enter:", "Save",   "Exit", "", (int*)&ro_mode, 0),
+		MAKE_KEY('\033', "Esc:",   "Cancel", "Exit", "", (int*)&ro_mode, 0),
+
+		/* Row 1 - F-KEy toggles */
+		MAKE_KEY(KEY_F( 5), "F5:",  "global",    "local",         "all",      (int*)&e_scope, 1),
+		MAKE_KEY(KEY_F( 6), "F6:",  "installed", "not installed", "all",      (int*)&e_state, 1),
+		MAKE_KEY(KEY_F( 7), "F7:",  "masked",    "all",           "unmasked", (int*)&e_mask,  1),
+		MAKE_KEY(KEY_F( 9), "F9:",  "desc left", "desc right",    "",         (int*)&e_order, 1),
+		MAKE_KEY(KEY_F(10), "F10:", "stripped",  "full",          "",         (int*)&e_desc,  1),
+		MAKE_KEY('\0', "", "", "", "", NULL, 0)
 	};
-#undef mkKey
 
 	result = maineventloop(ro_mode ? subtitle_ro : subtitle_rw,
 				&callback, &drawflag, flags, keys, true);

diff --git a/ufed-curses.c b/ufed-curses.c
index 1c1970b..8441c56 100644
--- a/ufed-curses.c
+++ b/ufed-curses.c
@@ -142,9 +142,12 @@ void drawBottom(bool withSep)
 
 	if (keys) {
 		const sKey* key = keys;
-		int pos   = 2;
-		int row   = 0;
-		int len   = 0;
+		char buf[COLS + 1];
+		int  pos   = 2;
+		int  row   = 0;
+		int  len_full = 0;
+		int  len_name = 0;
+		int  len_desc = 0;
 
 		while (key->key != '\0') {
 			if (row != key->row) {
@@ -152,19 +155,35 @@ void drawBottom(bool withSep)
 				pos = 2;
 			}
 
-			len = strlen(key->descr);
+			len_name = key->name_len;
+			len_desc = key->desc_len;
+			len_full = len_name + len_desc;
 
 			if (pos < (bWidth - 2)) {
-				if (len > (bWidth - 2 - pos))
-					len = bWidth - 2 - pos;
-				if (key->key > 0)
+				if (len_full > (bWidth - 2 - pos))
+					len_full = bWidth - 2 - pos;
+
+				/* Write name of the key */
+				if (len_name > len_full)
+					len_name = len_full;
+				len_full -= len_name;
+				wattrset(w, COLOR_PAIR(3));
+				mvwaddnstr(w, row + 1, pos, key->name, len_name);
+				pos += len_name;
+
+				/* Add description (button) if possible */
+				if (len_full) {
+					if (len_desc > len_full)
+						len_desc = len_full;
+					len_full -= len_desc;
+
+					sprintf(buf, "%-*.*s", len_desc - 1, len_desc - 1, key->desc[*key->idx]);
 					wattrset(w, COLOR_PAIR(6));
-				else
-					wattrset(w, COLOR_PAIR(3));
+					mvwaddstr(w, row + 1, pos, buf);
 
-				mvwaddnstr(w, row + 1, pos, key->descr, len);
+					pos += len_desc;
+				}
 			}
-			pos += len + 1;
 			++key;
 		}
 	}
@@ -645,8 +664,11 @@ int maineventloop(
 					if( (event.bstate & (BUTTON1_CLICKED | BUTTON1_DOUBLE_CLICKED))
 					 && (event.y >= 1) && (event.y <= 2)) {
 						const sKey* key = keys;
-						int x   = event.x;
-						int y   = event.y;
+						char  buf[COLS + 1];
+						int x        = event.x;
+						int y        = event.y;
+						int len_name = 0;
+						int len_desc = 0;
 						if((x < 2) || (y < 1) || (y > 2))
 							continue;
 						x -= 2;
@@ -657,20 +679,29 @@ int maineventloop(
 
 						// Check key
 						for ( ; (key->row == y) && (x >= 0) && (key->key != '\0'); key++) {
-							if ((key->key > 0) && ((size_t)x < key->length) ) {
-								event.x -= x;
-								wattrset(win(Bottom), COLOR_PAIR(6) | A_BOLD | A_REVERSE);
-								mvwaddstr(win(Bottom), event.y, event.x, key->descr);
+							len_name = key->name_len;
+							len_desc = key->desc_len;
+							if ( (key->key > 0)
+							  && (x > len_name)
+							  && (x < (len_name + len_desc) ) ) {
+								event.x -= x - len_name;
+
+								sprintf(buf, "%-*.*s", len_desc - 1, len_desc - 1, key->desc[*key->idx]);
+								wattrset(win(Bottom), COLOR_PAIR(7) | A_BOLD);
+								mvwaddstr(win(Bottom), event.y, event.x, buf);
+
 								wmove(win(Bottom), event.y, event.x);
 								wrefresh(win(Bottom));
 								usleep(100000);
+
 								wattrset(win(Bottom), COLOR_PAIR(6));
-								waddstr(win(Bottom), key->descr);
+								waddstr(win(Bottom), buf);
+
 								wnoutrefresh(win(Bottom));
 								c = key->key;
 								goto check_key;
 							}
-							x -= key->length + 1;
+							x -= len_name + len_desc;
 						}
 					}
 				}


             reply	other threads:[~2013-09-11  6:04 UTC|newest]

Thread overview: 238+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-11  6:04 Sven Eden [this message]
  -- strict thread matches above, loose matches on Subject: below --
2020-11-07 14:25 [gentoo-commits] proj/ufed:master commit in: / Sven Eden
2020-05-02  8:38 Ulrich Müller
2019-09-27  6:42 Sven Eden
2019-09-27  6:39 Sven Eden
2019-09-24 17:57 Sven Eden
2019-09-24 17:56 Sven Eden
2019-04-07 15:17 David Seifert
2019-04-07 13:56 David Seifert
2019-04-07 13:19 David Seifert
2019-04-07 13:19 David Seifert
2019-04-07 13:19 David Seifert
2019-04-07 13:19 David Seifert
2019-04-07 13:19 David Seifert
2015-02-12 15:47 Sven Eden
2015-02-11  9:03 Sven Eden
2014-11-10  9:59 Sven Eden
2014-10-28 11:43 Sven Eden
2014-02-26 10:26 Sven Eden
2014-02-26 10:26 Sven Eden
2014-02-26 10:26 Sven Eden
2014-02-26 10:26 Sven Eden
2014-02-26 10:26 Sven Eden
2014-02-26 10:26 Sven Eden
2014-02-25  8:18 Sven Eden
2014-02-25  8:18 Sven Eden
2014-02-25  8:18 Sven Eden
2014-02-25  8:18 Sven Eden
2013-11-25 21:43 Sven Eden
2013-11-25 21:43 Sven Eden
2013-11-25 21:43 Sven Eden
2013-11-25 21:43 Sven Eden
2013-11-25 21:43 Sven Eden
2013-09-20  8:30 Sven Eden
2013-09-20  8:30 Sven Eden
2013-09-20  8:30 Sven Eden
2013-09-20  8:30 Sven Eden
2013-09-20  8:30 Sven Eden
2013-09-20  8:30 Sven Eden
2013-09-20  8:30 Sven Eden
2013-09-20  8:30 Sven Eden
2013-09-20  8:30 Sven Eden
2013-09-20  8:30 Sven Eden
2013-09-20  8:30 Sven Eden
2013-09-20  8:30 Sven Eden
2013-09-20  8:30 Sven Eden
2013-09-20  8:30 Sven Eden
2013-09-20  8:30 Sven Eden
2013-09-20  8:30 Sven Eden
2013-09-20  8:30 Sven Eden
2013-09-20  8:30 Sven Eden
2013-09-20  8:30 Sven Eden
2013-09-20  8:30 Sven Eden
2013-09-20  8:30 Sven Eden
2013-09-20  8:30 Sven Eden
2013-09-20  8:30 Sven Eden
2013-09-20  8:30 Sven Eden
2013-09-20  8:30 Sven Eden
2013-09-11  7:09 Sven Eden
2013-09-11  6:31 Sven Eden
2013-09-11  6:04 Sven Eden
2013-09-11  6:04 Sven Eden
2013-09-11  6:04 Sven Eden
2013-09-11  6:04 Sven Eden
2013-09-11  6:04 Sven Eden
2013-09-11  6:04 Sven Eden
2013-09-11  6:04 Sven Eden
2013-09-11  6:04 Sven Eden
2013-09-11  6:04 Sven Eden
2013-09-11  6:04 Sven Eden
2013-09-11  6:04 Sven Eden
2013-09-11  6:04 Sven Eden
2013-09-11  6:04 Sven Eden
2013-09-11  6:04 Sven Eden
2013-09-11  6:04 Sven Eden
2013-09-11  6:04 Sven Eden
2013-09-11  6:04 Sven Eden
2013-09-11  6:04 Sven Eden
2013-09-11  6:04 Sven Eden
2013-09-11  6:04 Sven Eden
2013-09-11  6:04 Sven Eden
2013-09-10 12:37 Sven Eden
2013-09-10  6:36 Sven Eden
2013-09-10  6:36 Sven Eden
2013-09-10  6:36 Sven Eden
2013-09-10  6:36 Sven Eden
2013-09-10  6:36 Sven Eden
2013-09-10  6:36 Sven Eden
2013-09-10  6:36 Sven Eden
2013-07-22  9:34 Sven Eden
2013-07-22  6:09 Sven Eden
2013-07-22  6:09 Sven Eden
2013-04-09  7:22 Sven Eden
2013-04-09  7:22 Sven Eden
2013-04-09  7:22 Sven Eden
2013-04-08  7:18 Sven Eden
2013-04-03 13:39 Sven Eden
2013-03-05 16:53 Sven Eden
2013-03-05 16:49 Sven Eden
2013-03-05 16:49 Sven Eden
2013-03-05 16:49 Sven Eden
2013-03-05 16:49 Sven Eden
2013-03-05 16:49 Sven Eden
2013-02-21 10:02 Sven Eden
2013-02-19 15:16 Sven Eden
2013-02-19 13:34 Sven Eden
2013-02-18  7:22 Sven Eden
2013-02-15  8:36 Sven Eden
2013-02-15  8:36 Sven Eden
2013-02-15  8:36 Sven Eden
2013-02-14  8:35 Sven Eden
2013-02-14  8:35 Sven Eden
2013-02-14  8:35 Sven Eden
2013-02-13  9:23 Sven Eden
2013-02-13  9:23 Sven Eden
2013-02-13  9:23 Sven Eden
2013-02-13  9:23 Sven Eden
2013-02-13  9:23 Sven Eden
2013-02-12 10:51 Sven Eden
2013-02-12 10:51 Sven Eden
2013-02-12  9:01 Sven Eden
2013-02-12  9:01 Sven Eden
2013-02-12  9:01 Sven Eden
2013-02-12  9:01 Sven Eden
2013-02-12  9:01 Sven Eden
2013-02-12  9:01 Sven Eden
2013-02-12  9:01 Sven Eden
2013-02-12  9:01 Sven Eden
2013-02-12  9:01 Sven Eden
2013-02-12  9:01 Sven Eden
2013-02-12  9:01 Sven Eden
2013-02-12  9:01 Sven Eden
2013-02-12  9:01 Sven Eden
2013-02-12  9:01 Sven Eden
2013-02-12  9:01 Sven Eden
2013-02-12  9:01 Sven Eden
2013-02-12  9:01 Sven Eden
2013-02-12  9:01 Sven Eden
2013-02-12  9:01 Sven Eden
2013-02-12  9:01 Sven Eden
2013-02-12  9:01 Sven Eden
2013-02-12  9:01 Sven Eden
2013-02-06  9:09 Sven Eden
2013-02-06  9:09 Sven Eden
2013-02-05 18:06 Paul Varner
2013-02-05 13:53 Sven Eden
2013-02-05 13:53 Sven Eden
2013-02-05 11:24 Sven Eden
2013-02-03 14:32 Sven Eden
2013-02-03 14:32 Sven Eden
2013-02-03 14:32 Sven Eden
2013-02-03 14:32 Sven Eden
2013-02-03 14:32 Sven Eden
2013-02-02 20:49 Sven Eden
2013-02-02 10:11 Sven Eden
2013-02-02  9:47 Sven Eden
2013-02-02  9:47 Sven Eden
2013-02-02  9:47 Sven Eden
2013-02-01 21:12 Sven Eden
2013-02-01 21:12 Sven Eden
2013-02-01 21:12 Sven Eden
2013-02-01 16:04 Sven Eden
2013-02-01 15:55 Sven Eden
2013-02-01 15:26 Sven Eden
2013-02-01 14:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-01-24 10:15 Sven Eden
2013-01-24 10:15 Sven Eden
2013-01-24 10:15 Sven Eden
2013-01-24 10:15 Sven Eden
2013-01-24 10:15 Sven Eden
2013-01-23 14:44 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-16 13:43 Sven Eden
2013-01-16 12:56 Sven Eden
2013-01-16 12:56 Sven Eden
2013-01-16 12:56 Sven Eden
2013-01-16 12:56 Sven Eden
2013-01-16 12:56 Sven Eden
2013-01-16 12:56 Sven Eden
2013-01-08 11:02 Sven Eden
2013-01-02  8:47 Sven Eden
2013-01-02  8:01 Sven Eden
2013-01-02  8:01 Sven Eden
2012-11-20 17:31 Paul Varner
2012-11-20 17:25 Paul Varner
2012-10-23 16:13 Paul Varner
2012-10-23 16:13 Paul Varner
2012-10-23 16:13 Paul Varner
2012-10-23 16:01 Paul Varner
2012-10-22 20:42 Paul Varner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1378845815.3e73393774bc02d67915fbb77854ac9489084ee1.yamakuzure@gentoo \
    --to=sven.eden@gmx.de \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox