本文整理匯總了Golang中github.com/sqp/godock/widgets/cfbuild/cftype.Key.SetNbControlled方法的典型用法代碼示例。如果您正苦於以下問題:Golang Key.SetNbControlled方法的具體用法?Golang Key.SetNbControlled怎麽用?Golang Key.SetNbControlled使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/sqp/godock/widgets/cfbuild/cftype.Key
的用法示例。
在下文中一共展示了Key.SetNbControlled方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: Lists
// Lists adds a string list widget.
//
func Lists(key *cftype.Key) {
if key.IsType(cftype.KeyListNbCtrlSimple, cftype.KeyListNbCtrlSelect) && len(key.AuthorizedValues) == 0 {
key.Log().NewWarn("not enough values", "widget numbered control list:", key.Name)
return
}
// Get full value with ';'.
value := key.Value().String()
// log.DEV("LIST "+string(key.Type), key.Name, value, key.AuthorizedValues)
listIsNumbered := key.IsType(cftype.KeyListNumbered, cftype.KeyListNbCtrlSimple, cftype.KeyListNbCtrlSelect)
iSelectedItem := -1
current := ""
// Control selective use 3 AuthorizedValues fields for each "value".
step := ternary.Int(key.IsType(cftype.KeyListNbCtrlSelect), 3, 1)
if key.IsType(cftype.KeyListEntry) {
current = value
}
if listIsNumbered && value != "" {
var e error
iSelectedItem, e = strconv.Atoi(value)
switch {
case key.Log().Err(e, "selection problem", "[", value, "]", "[", iSelectedItem, "]", key.Name):
case iSelectedItem < 0:
case iSelectedItem < len(key.AuthorizedValues):
current = key.AuthorizedValues[iSelectedItem*step]
default:
key.Log().NewWarn("selection out of range", "widget numbered list:", key.Name)
}
}
var list []datatype.Field
if len(key.AuthorizedValues) > 0 {
// int iOrder1, iOrder2, iExcept;
if key.IsType(cftype.KeyListNbCtrlSimple, cftype.KeyListNbCtrlSelect) {
key.SetNbControlled(0)
}
// gchar *cResult = (listIsNumbered ? g_new0 (gchar , 10) : NULL);
for k := 0; k < len(key.AuthorizedValues); k += step { // on ajoute toutes les chaines possibles a la combo.
if !listIsNumbered && iSelectedItem == -1 && value == key.AuthorizedValues[k] {
current = value
iSelectedItem = k / step
}
// if (cResult != NULL)
// snprintf (cResult, 9, "%d", k/dk); // dk becomes step
// iExcept = 0;
// if key.IsType(cftype.KeyListNbCtrlSelect) {
// iOrder1 = atoi (key.AuthorizedValues[k+1]);
// gchar *str = strchr (key.AuthorizedValues[k+2], ',');
// if (str) // Note: this mechanism is an addition to the original {first widget, number of widgets}; it's not very generic nor beautiful, but until we need more, it's well enough (currently, only the Dock background needs it).
// {
// *str = '\0';
// iExcept = atoi (str+1);
// }
// iOrder2 = atoi (key.AuthorizedValues[k+2]);
// NbControlled = MAX (NbControlled, iOrder1 + iOrder2 - 1);
// //g_print ("iSelectedItem:%d ; k/dk:%d\n", iSelectedItem , k/dk);
// if (iSelectedItem == (int)k/dk)
// {
// iFirstSensitiveWidget = iOrder1;
// iNbSensitiveWidgets = iOrder2;
// iNonSensitiveWidget = iExcept;
// if (iNonSensitiveWidget != 0)
// NbControlled ++;
// }
// } else {
// iOrder1 = iOrder2 = k;
// }
//
name := ""
if key.IsType(cftype.KeyListEntry) {
name = key.AuthorizedValues[k]
} else {
name = key.Translate(key.AuthorizedValues[k])
}
list = append(list, datatype.Field{
Key: key.AuthorizedValues[k],
Name: name,
})
// CAIRO_DOCK_MODEL_ORDER, iOrder1,
// CAIRO_DOCK_MODEL_ORDER2, iOrder2,
// CAIRO_DOCK_MODEL_STATE, iExcept, -1);
}
}
//.........這裏部分代碼省略.........