Author: rpmcruz
Date: Fri Oct 26 18:43:04 2007
New Revision: 41599
URL: http://svn.opensuse.org/viewcvs/yast?rev=41599&view=rev
Log:
* src/YGProgressBar.cc: improved look of the multi-progress-bar. Made
it growing completely from bottom to top.
* tests/MultiProgressMeterVer.ycp: test case.
Added:
trunk/gtk/tests/MultiProgressMeterVer.ycp
Modified:
trunk/gtk/ChangeLog
trunk/gtk/src/YGProgressBar.cc
Modified: trunk/gtk/ChangeLog
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/ChangeLog?rev=41599&r1=41598&r2=41599&view=diff
==============================================================================
--- trunk/gtk/ChangeLog (original)
+++ trunk/gtk/ChangeLog Fri Oct 26 18:43:04 2007
@@ -1,3 +1,10 @@
+2007-10-26 Ricardo Cruz
+
+ * src/YGProgressBar.cc: improved look of the multi-progress-bar. Made
+ it growing completely from bottom to top.
+
+ * tests/MultiProgressMeterVer.ycp: test case.
+
2007-10-25 Ricardo Cruz
* src/ygtkratiobox.h/c, YGProgressBar.cc, YGWidget.cc: bug
Modified: trunk/gtk/src/YGProgressBar.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/src/YGProgressBar.cc?rev=41599&r1=41598&r2=41599&view=diff
==============================================================================
--- trunk/gtk/src/YGProgressBar.cc (original)
+++ trunk/gtk/src/YGProgressBar.cc Fri Oct 26 18:43:04 2007
@@ -121,10 +121,10 @@
// ygtk_ratio_box_set_homogeneous (YGTK_RATIO_BOX (getWidget()), TRUE);
ygtk_ratio_box_set_spacing (YGTK_RATIO_BOX (getWidget()), 2);
- for (int i = 0; i < segments(); i++) {
+ for (int i = segments()-1; i >= 0; i--) {
GtkWidget* bar = gtk_progress_bar_new();
gtk_progress_bar_set_orientation (GTK_PROGRESS_BAR (bar),
- horizontal ? GTK_PROGRESS_LEFT_TO_RIGHT : GTK_PROGRESS_BOTTOM_TO_TOP );
+ horizontal ? GTK_PROGRESS_LEFT_TO_RIGHT : GTK_PROGRESS_BOTTOM_TO_TOP);
// Progress bars just ask for too much size -- let's cut it
const int min_size = 5;
@@ -145,11 +145,12 @@
virtual void doUpdate()
{
GList* children = gtk_container_get_children (GTK_CONTAINER (getWidget()));
- for (int i = 0; i < segments() && i < (signed)g_list_length (children); i++) {
- GtkProgressBar *bar = GTK_PROGRESS_BAR (g_list_nth_data (children, i));
+ int n = segments()-1;
+ for (GList *i = children; i && n >= 0; i = i->next, n--) {
+ GtkProgressBar *bar = GTK_PROGRESS_BAR (i->data);
gfloat fraction = 0;
- if (currentValue (i) != -1)
- fraction = 1.0 - ((gfloat) currentValue(i) / maxValue(i));
+ if (currentValue (n) != -1)
+ fraction = 1.0 - ((gfloat) currentValue(n) / maxValue(n));
gtk_progress_bar_set_fraction (bar, fraction);
}
g_list_free (children);
Added: trunk/gtk/tests/MultiProgressMeterVer.ycp
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/tests/MultiProgressMeterVer.ycp?rev=41599&view=auto
==============================================================================
--- trunk/gtk/tests/MultiProgressMeterVer.ycp (added)
+++ trunk/gtk/tests/MultiProgressMeterVer.ycp Fri Oct 26 18:43:04 2007
@@ -0,0 +1,39 @@
+// Simple example for MultiProgressMeter
+{
+ if ( ! UI::HasSpecialWidget(`HMultiProgressMeter ) )
+ {
+ UI::OpenDialog(
+ `VBox(
+ `Label("Error: This UI doesn't support the MultiProgressMeter widget!"),
+ `PushButton(`opt(`default), "&OK")
+ )
+ );
+ UI::UserInput();
+ UI::CloseDialog();
+
+ return;
+ }
+
+
+ UI::OpenDialog(
+ `VBox(
+ `VMultiProgressMeter(`id(`prog), [ 100, 200, 500, 20, 100 ] ),
+ `PushButton(`opt(`default), "&Ok" )
+ )
+ );
+
+ UI::ChangeWidget(`prog, `Values, [ 1000, 200, 500, 20, 100 ] ); UI::UserInput();
+ UI::ChangeWidget(`prog, `Values, [ 800, 200, 500, 20, 100 ] ); UI::UserInput();
+ UI::ChangeWidget(`prog, `Values, [ 500, 200, 500, 20, 100 ] ); UI::UserInput();
+ UI::ChangeWidget(`prog, `Values, [ 200, 200, 500, 20, 100 ] ); UI::UserInput();
+ UI::ChangeWidget(`prog, `Values, [ 0, 200, 500, 20, 100 ] ); UI::UserInput();
+
+ UI::ChangeWidget(`prog, `Values, [ 0, 100, 500, 20, 100 ] ); UI::UserInput();
+ UI::ChangeWidget(`prog, `Values, [ 0, 20, 500, 20, 100 ] ); UI::UserInput();
+ UI::ChangeWidget(`prog, `Values, [ 0, 0, 500, 20, 100 ] ); UI::UserInput();
+
+ UI::ChangeWidget(`prog, `Values, [ 0, 0, 400, 20, 100 ] ); UI::UserInput();
+ UI::ChangeWidget(`prog, `Values, [ 0, 0, 300, 20, 100 ] ); UI::UserInput();
+ UI::ChangeWidget(`prog, `Values, [ 0, 0, 200, 20, 100 ] ); UI::UserInput();
+ UI::ChangeWidget(`prog, `Values, [ 0, 0, 100, 20, 100 ] ); UI::UserInput();
+}
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org