[Aptitude-svn-commit] r3521 - in branches/aptitude-0.3/aptitude: . src/vscreen
Daniel Burrows
dburrows@costa.debian.org
Sat, 02 Jul 2005 03:53:53 +0000
Author: dburrows
Date: Sat Jul 2 03:53:50 2005
New Revision: 3521
Modified:
branches/aptitude-0.3/aptitude/ChangeLog
branches/aptitude-0.3/aptitude/src/vscreen/curses++.cc
branches/aptitude-0.3/aptitude/src/vscreen/curses++.h
branches/aptitude-0.3/aptitude/src/vscreen/vscreen_widget.h
Log:
Update show_string_as_progbar for wide characters.
Modified: branches/aptitude-0.3/aptitude/ChangeLog
==============================================================================
--- branches/aptitude-0.3/aptitude/ChangeLog (original)
+++ branches/aptitude-0.3/aptitude/ChangeLog Sat Jul 2 03:53:50 2005
@@ -1,5 +1,9 @@
2005-07-01 Daniel Burrows <dburrows@debian.org>
+ * src/vscreen/curses++.cc, src/vscreen/curses++.h, src/vscreen/vscreen_widget.h:
+
+ Update show_string_as_progbar for wide characters.
+
* src/download_bar.cc, src/download_bar.h:
Fix the download bar for wide characters.
Modified: branches/aptitude-0.3/aptitude/src/vscreen/curses++.cc
==============================================================================
--- branches/aptitude-0.3/aptitude/src/vscreen/curses++.cc (original)
+++ branches/aptitude-0.3/aptitude/src/vscreen/curses++.cc Sat Jul 2 03:53:50 2005
@@ -268,7 +268,9 @@
return amt;
}
-void cwindow::show_string_as_progbar(int x, int y, string s, int attr1, int attr2, int size1, int totalsize)
+void cwindow::show_string_as_progbar(int x, int y, wstring s,
+ int attr1, int attr2, int size1,
+ int totalsize)
{
int width,height;
@@ -277,17 +279,21 @@
attrset(attr1);
move(y, x);
- for(int i=0; i<totalsize; i++)
+ size_t loc=0;
+ while(x<width)
{
- if(i==size1)
+ if(x>=size1)
attrset(attr2);
- if(((unsigned int) i)<s.size())
- addch((unsigned char) s[i]);
- // Ack, that's ugly. Remind me to use strings that have unsigned chars
- // as their contents next time..
- else
- addch(' ');
+ wchar_t ch=L' ';
+ if(loc<s.size())
+ {
+ ch=s[loc];
+ ++loc;
+ }
+
+ add_wch(ch);
+ x+=wcwidth(ch);
}
}
Modified: branches/aptitude-0.3/aptitude/src/vscreen/curses++.h
==============================================================================
--- branches/aptitude-0.3/aptitude/src/vscreen/curses++.h (original)
+++ branches/aptitude-0.3/aptitude/src/vscreen/curses++.h Sat Jul 2 03:53:50 2005
@@ -544,7 +544,9 @@
int getmaxy() {return _getmaxy(win);}
int getmaxx() {return _getmaxx(win);}
- void show_string_as_progbar(int x, int y, std::string s, int attr1, int attr2, int size1, int totalsize);
+ void show_string_as_progbar(int x, int y, std::wstring s,
+ int attr1, int attr2, int size1,
+ int totalsize);
// Glitz bit :) Displays the given string with a progress bar behind it.
void display_header(std::wstring s, const attr_t attr);
Modified: branches/aptitude-0.3/aptitude/src/vscreen/vscreen_widget.h
==============================================================================
--- branches/aptitude-0.3/aptitude/src/vscreen/vscreen_widget.h (original)
+++ branches/aptitude-0.3/aptitude/src/vscreen/vscreen_widget.h Sat Jul 2 03:53:50 2005
@@ -343,7 +343,16 @@
int getmaxy() {return win?win.getmaxy():0;}
int getmaxx() {return win?win.getmaxx():0;}
- void show_string_as_progbar(int x, int y, std::string s, int attr1, int attr2, int size1, int totalsize) {if(win) win.show_string_as_progbar(x, y, s, attr1, attr2, size1, totalsize);}
+ void show_string_as_progbar(int x, int y, std::wstring s,
+ const style &st1, const style &st2,
+ int size1, int totalsize)
+ {
+ if(win)
+ win.show_string_as_progbar(x, y, s,
+ st1.get_attrs(),
+ st2.get_attrs(),
+ size1, totalsize);
+ }
void display_header(std::wstring s, const style &st) {if(win) win.display_header(s, st.get_attrs());}
void display_status(std::wstring s, const style &st) {if(win) win.display_status(s, st.get_attrs());}