[Aptitude-svn-commit] r3483 - in branches/aptitude-0.3/aptitude: . src/vscreen

Daniel Burrows dburrows@costa.debian.org
Mon, 27 Jun 2005 21:33:47 +0000


Author: dburrows
Date: Mon Jun 27 21:33:37 2005
New Revision: 3483

Modified:
   branches/aptitude-0.3/aptitude/ChangeLog
   branches/aptitude-0.3/aptitude/src/vscreen/vs_menu.cc
   branches/aptitude-0.3/aptitude/src/vscreen/vs_menu.h
Log:
Convert vs_menu::handle_char to vs_menu::handle_key.


Modified: branches/aptitude-0.3/aptitude/ChangeLog
==============================================================================
--- branches/aptitude-0.3/aptitude/ChangeLog	(original)
+++ branches/aptitude-0.3/aptitude/ChangeLog	Mon Jun 27 21:33:37 2005
@@ -1,5 +1,9 @@
 2005-06-27  Daniel Burrows  <dburrows@debian.org>
 
+	* src/vscreen/vs_menu.cc, src/vscreen/vs_menu.h:
+
+	  Convert vs_menu::handle_char to vs_editline::handle_key.
+
 	* src/vscreen/vs_editline.cc, src/vscreen/vs_editline.h:
 
 	  Convert vs_editline::handle_char to vs_editline::handle_key.

Modified: branches/aptitude-0.3/aptitude/src/vscreen/vs_menu.cc
==============================================================================
--- branches/aptitude-0.3/aptitude/src/vscreen/vs_menu.cc	(original)
+++ branches/aptitude-0.3/aptitude/src/vscreen/vs_menu.cc	Mon Jun 27 21:33:37 2005
@@ -4,6 +4,8 @@
 #include "vscreen.h"
 #include "config/colors.h"
 
+#include "transcode.h"
+
 #include <sigc++/functors/mem_fun.h>
 
 #include <algorithm>
@@ -264,13 +266,13 @@
   highlight_current();
 }
 
-bool vs_menu::handle_char(chtype ch)
+bool vs_menu::handle_key(const key &k)
 {
   // This will ensure that the cursor is in bounds if possible, and that
   // if it is in bounds, a "real" item is selected.
   sanitize_cursor(true);
 
-  if(bindings->key_matches(ch, "Up"))
+  if(bindings->key_matches(k, "Up"))
     {
       if(cursorloc>0)
 	{
@@ -282,7 +284,7 @@
 	  vscreen_update();
 	}
     }
-  else if(bindings->key_matches(ch, "Down"))
+  else if(bindings->key_matches(k, "Down"))
     {
       if(cursorloc<items.size()-1)
 	{
@@ -294,11 +296,11 @@
 	  vscreen_update();
 	}
     }
-  else if(bindings->key_matches(ch, "Begin"))
+  else if(bindings->key_matches(k, "Begin"))
     set_cursor(next_selectable(0));
-  else if(bindings->key_matches(ch, "End"))
+  else if(bindings->key_matches(k, "End"))
     set_cursor(prev_selectable(items.size()-1));
-  else if(bindings->key_matches(ch, "Confirm"))
+  else if(bindings->key_matches(k, "Confirm"))
     {
       itemlist::size_type selected=cursorloc;
 
@@ -312,7 +314,7 @@
     {
       for(itemlist::iterator i=items.begin(); i!=items.end(); i++)
 	if(*i && (*i)->is_enabled() &&
-	   toupper(ch)==toupper((*i)->get_hotkey()))
+	   towupper(k.ch)==towupper((*i)->get_hotkey()))
 	  {
 	    menus_goaway();
 	    item_highlighted(NULL);
@@ -321,7 +323,7 @@
 
 	    return true;
 	  }
-      return vscreen_widget::handle_char(ch);
+      return vscreen_widget::handle_key(k);
     }
 
   return true;
@@ -387,7 +389,8 @@
 	mvaddch(1+i, width-1, ACS_VLINE);
 
 	string title=items[i]->get_title();
-	string righttext=items[i]->get_binding().empty()?"":global_bindings.readable_keyname(items[i]->get_binding());
+	// HACK, remove once vs_menu is properly widechar-safe.
+	string righttext=transcode(items[i]->get_binding().empty()?L"":global_bindings.readable_keyname(items[i]->get_binding()));
 
 	bool enabled=items[i]->is_enabled();
 

Modified: branches/aptitude-0.3/aptitude/src/vscreen/vs_menu.h
==============================================================================
--- branches/aptitude-0.3/aptitude/src/vscreen/vs_menu.h	(original)
+++ branches/aptitude-0.3/aptitude/src/vscreen/vs_menu.h	Mon Jun 27 21:33:37 2005
@@ -151,7 +151,7 @@
   void sanitize_cursor(bool forward);
 
 protected:
-  virtual bool handle_char(chtype ch);
+  virtual bool handle_key(const key &k);
 public:
   // Initialize a blank menu.
   vs_menu();