當前位置: 首頁>>代碼示例>>Golang>>正文


Golang Key.SetFrame方法代碼示例

本文整理匯總了Golang中github.com/sqp/godock/widgets/cfbuild/cftype.Key.SetFrame方法的典型用法代碼示例。如果您正苦於以下問題:Golang Key.SetFrame方法的具體用法?Golang Key.SetFrame怎麽用?Golang Key.SetFrame使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在github.com/sqp/godock/widgets/cfbuild/cftype.Key的用法示例。


在下文中一共展示了Key.SetFrame方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: Frame

// Frame adds a simple or expanded frame widget.
//
func Frame(key *cftype.Key) {
    if len(key.AuthorizedValues) == 0 {
        key.SetFrame(nil)
        key.SetFrameBox(nil)
        return
    }

    value, img := "", ""
    if key.AuthorizedValues[0] == "" {
        key.Log().Info("WidgetFrame, need value case 1")
        // value = g_key_file_get_string(pKeyFile, cGroupName, cKeyName, NULL) // utile ?
    } else {
        value = key.AuthorizedValues[0]
        if len(key.AuthorizedValues) > 1 {
            img = key.AuthorizedValues[1]
        }
    }

    // Create the frame label with the optional icon.
    label := newgtk.Label("")
    // key.SetLabel(label)
    label.SetMarkup(" " + common.Bold(key.Translate(value)) + " ")

    var labelContainer gtk.IWidget
    if img == "" {
        labelContainer = label
    } else {
        box := newgtk.Box(gtk.ORIENTATION_HORIZONTAL, cftype.MarginIcon/2)
        if icon, e := common.ImageNewFromFile(img, iconSizeFrame); !key.Log().Err(e, "Frame icon") { // TODO: fix size : int(gtk.ICON_SIZE_MENU)
            box.Add(icon)
        }
        box.Add(label)
        labelContainer = box
    }

    // Create the box that will contain next widgets (inside the frame).
    box := newgtk.Box(gtk.ORIENTATION_VERTICAL, cftype.MarginGUI)
    key.SetFrameBox(box)

    frame := newgtk.Frame("")
    key.SetFrame(frame)
    frame.SetBorderWidth(cftype.MarginGUI)
    frame.SetShadowType(gtk.SHADOW_OUT)
    frame.Add(box)

    // Set label and create the expander around the frame if needed.
    switch key.Type {
    case cftype.KeyFrame:
        frame.SetLabelWidget(labelContainer)
        key.BoxPage().PackStart(frame, false, false, 0)

    case cftype.KeyExpander:
        expand := newgtk.Expander("")
        expand.SetExpanded(false)
        expand.SetLabelWidget(labelContainer)

        expand.Add(frame)
        key.BoxPage().PackStart(expand, false, false, 0)
    }

    // SAME AS IN builder.go

    // 	if (pControlWidgets != NULL)
    // 	{
    // 		cd_debug ("ctrl\n");
    // 		CDControlWidget *cw = pControlWidgets->data;
    // 		if (cw->pControlContainer == key.Box)
    // 		{
    // 			cd_debug ("ctrl (NbControlled:%d, iFirstSensitiveWidget:%d, iNbSensitiveWidgets:%d)", cw->NbControlled, cw->iFirstSensitiveWidget, cw->iNbSensitiveWidgets);
    // 			cw->NbControlled --;
    // 			if (cw->iFirstSensitiveWidget > 0)
    // 				cw->iFirstSensitiveWidget --;
    // 			cw->iNonSensitiveWidget --;

    // 			GtkWidget *w = pExternFrame;
    // 			if (cw->iFirstSensitiveWidget == 0 && cw->iNbSensitiveWidgets > 0 && cw->iNonSensitiveWidget != 0)
    // 			{
    // 				cd_debug (" => sensitive\n");
    // 				cw->iNbSensitiveWidgets --;
    // 				if (GTK_IS_EXPANDER (w))
    // 					gtk_expander_set_expanded (GTK_EXPANDER (w), TRUE);
    // 			}
    // 			else
    // 			{
    // 				cd_debug (" => unsensitive\n");
    // 				if (!GTK_IS_EXPANDER (w))
    // 					gtk_widget_set_sensitive (w, FALSE);
    // 			}
    // 			if (cw->iFirstSensitiveWidget == 0 && cw->NbControlled == 0)
    // 			{
    // 				pControlWidgets = g_list_delete_link (pControlWidgets, pControlWidgets);
    // 				g_free (cw);
    // 			}
    // 		}
    // 	}
}
開發者ID:sqp,項目名稱:godock,代碼行數:98,代碼來源:widgets.go


注:本文中的github.com/sqp/godock/widgets/cfbuild/cftype.Key.SetFrame方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。