Bugzilla – Attachment 250923 Details for
Bug 443214
setting slider value emits event in gtk
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Forgot Password
example script
slider2.ycp (text/plain), 2.16 KB, created by
Arvin Schnell
on 2008-11-09 19:50:28 UTC
(
hide
)
Description:
example script
Filename:
MIME Type:
Creator:
Arvin Schnell
Created:
2008-11-09 19:50:28 UTC
Size:
2.16 KB
patch
obsolete
>{ > import "Label"; > import "Storage"; > > // Slider without SpinBox required. > > // Maybe a InputField with delayed event (without implicite immediate) > // would be nicer. > > // With Gtk setting slider value emits a signal. Seems wrong according to > // http://forgeftp.novell.com/yast/doc/SL11.1/tdg/UI-Events.html. > > integer min_size_k = (integer) (8.6*1024); > integer max_size_k = (integer) (9.4*1024*1024*1024); > > integer size_k = (max_size_k - min_size_k) / 2; > > > // Since slider uses internally int we have to limit the slider value to > // e.g. 0..10000. > > integer r2ui(integer size_k) > { > return (integer)(10000.0 * (size_k - min_size_k) / (max_size_k - min_size_k)); > } > > integer ui2r(integer i) > { > return (integer)(min_size_k + ((max_size_k - min_size_k) * i / 10000.0)); > } > > > Storage::InitLibstorage(true); > > UI::OpenDialog( > `VBox( > `Slider(`id(`slider), `opt(`notify), "", 0, 10000, r2ui(size_k)), > `InputField(`id(`inputfield), `opt(`notify), "Size"), > `ButtonBox( > `PushButton(`id(`ok), `opt(`default, `okButton), Label::OKButton()), > `PushButton(`id(`cancel), `opt(`cancelButton), Label::CancelButton()) > ) > ) > ); > > symbol widget = nil; > > do { > > widget = (symbol) UI::UserInput(); > > switch (widget) > { > case `slider: > { > integer i = (integer) UI::QueryWidget(`id(`slider), `Value); > y2milestone("new slider value %1", i); > size_k = ui2r(i); > string s = Storage::KByteToHumanString(size_k); > UI::ChangeWidget(`id(`inputfield), `Value, s); > y2milestone("setting new inputfield value %1", s); > } > break; > > case `inputfield: > { > string s = (string) UI::QueryWidget(`id(`inputfield), `Value); > y2milestone("new inputfield value %1", s); > if (!Storage::HumanStringToKByte(s, size_k)) > { > y2milestone("invalid size string"); > } > else if (size_k < min_size_k || size_k > max_size_k) > { > y2milestone("size out-of-range"); > } > else > { > integer i = r2ui(size_k); > UI::ChangeWidget(`id(`slider), `Value, i); > y2milestone("setting new slider value %1", i); > } > } > break; > } > > } while (widget != `cancel && widget != `ok); > > UI::CloseDialog(); >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
Actions:
View
Attachments on
bug 443214
: 250923