Author: michael_meeks
Date: Wed Aug 22 18:50:33 2007
New Revision: 40421
URL: http://svn.opensuse.org/viewcvs/yast?rev=40421&view=rev
Log:
2007-08-22 Michael Meeks
* src/YGProgressBar.cc (YGProgressBar): implement pulse
mode when maxprogress == 0
* tests/ProgressPulse.ycp: add test.
Added:
trunk/gtk/tests/ProgressPulse.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=40421&r1=40420&r2=40421&view=diff
==============================================================================
--- trunk/gtk/ChangeLog (original)
+++ trunk/gtk/ChangeLog Wed Aug 22 18:50:33 2007
@@ -1,5 +1,10 @@
2007-08-22 Michael Meeks
+ * src/YGProgressBar.cc (YGProgressBar): implement pulse
+ mode when maxprogress == 0
+
+ * tests/ProgressPulse.ycp: add test.
+
* configure.in.in, src/Makefile: create and use PYUI_LIBS,
to adapt likewise.
Modified: trunk/gtk/src/YGProgressBar.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/src/YGProgressBar.cc?rev=40421&r1=40420&r2=40421&view=diff
==============================================================================
--- trunk/gtk/src/YGProgressBar.cc (original)
+++ trunk/gtk/src/YGProgressBar.cc Wed Aug 22 18:50:33 2007
@@ -11,6 +11,7 @@
class YGProgressBar : public YProgressBar, public YGLabeledWidget
{
+ bool m_pulse;
public:
YGProgressBar (const YWidgetOpt &opt, YGWidget *parent,
const YCPString& label,
@@ -18,7 +19,9 @@
: YProgressBar (opt, label, maxprogress, progress)
, YGLabeledWidget (this, parent, label, YD_VERT, true,
GTK_TYPE_PROGRESS_BAR, NULL)
- { }
+ {
+ m_pulse = maxprogress->value() <= 0;
+ }
// NOTE: its label widget is positionated at the vertical, because its label
// may change often and so will its size, which will look odd (we may want
// to make the label widget to only grow).
@@ -29,9 +32,13 @@
virtual void setProgress (const YCPInteger& newProgress)
{
IMPL
- float fraction = (float) newProgress->value() / maxProgress->value();
- gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (getWidget()), fraction);
- YProgressBar::setProgress (newProgress);
+ if (m_pulse)
+ gtk_progress_bar_pulse (GTK_PROGRESS_BAR (getWidget()));
+ else {
+ float fraction = (float) newProgress->value() / maxProgress->value();
+ gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (getWidget()), fraction);
+ }
+ YProgressBar::setProgress (newProgress);
}
YGWIDGET_IMPL_COMMON
Added: trunk/gtk/tests/ProgressPulse.ycp
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/tests/ProgressPulse.ycp?rev=40421&view=auto
==============================================================================
--- trunk/gtk/tests/ProgressPulse.ycp (added)
+++ trunk/gtk/tests/ProgressPulse.ycp Wed Aug 22 18:50:33 2007
@@ -0,0 +1,30 @@
+// Simple ProgressBar example
+{
+ integer max_progress = 0;
+ integer progress = 0;
+
+ UI::OpenDialog(
+ `VBox(
+ `ProgressBar(`id(`pr), "Sample progress bar", max_progress, progress ),
+ `PushButton(`id(`next), "Next"),
+ `Right(`PushButton(`id(`close), "&Close" ) )
+ )
+ );
+
+
+ while ( progress < 20 )
+ {
+ symbol button = (symbol) UI::UserInput();
+
+ if ( button == `next )
+ {
+ progress = progress + 1;
+ UI::ChangeWidget(`id(`pr), `Value, progress);
+ UI::ChangeWidget(`id(`pr), `Label, sformat("Progress %1 of %2", progress, max_progress ));
+ }
+ else if ( button == `close )
+ break;
+ }
+
+ UI::CloseDialog();
+}
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org