本文整理汇总了Golang中C.gdouble函数的典型用法代码示例。如果您正苦于以下问题:Golang gdouble函数的具体用法?Golang gdouble怎么用?Golang gdouble使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了gdouble函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: LevelBarNewForInterval
// LevelBarNewForInterval() is a wrapper around gtk_level_bar_new_for_interval().
func LevelBarNewForInterval(min_value, max_value float64) (*LevelBar, error) {
c := C.gtk_level_bar_new_for_interval(C.gdouble(min_value), C.gdouble(max_value))
if c == nil {
return nil, nilPtrErr
}
return wrapLevelBar(wrapObject(unsafe.Pointer(c))), nil
}
示例2: ToNative
func (self RGBA) ToNative() unsafe.Pointer {
crgba := C._new_rgba()
crgba.red = C.gdouble(self.Red)
crgba.green = C.gdouble(self.Green)
crgba.blue = C.gdouble(self.Blue)
crgba.alpha = C.gdouble(self.Alpha)
return unsafe.Pointer(crgba)
}
示例3: GValueFromNative
//-----------------------------------------------------------------------
// GValue
//-----------------------------------------------------------------------
func GValueFromNative(value interface{}) *C.GValue {
var gv *C.GValue
if _, ok := value.(WrappedObject); ok {
value = value.(WrappedObject).GetInternalValue()
}
if _, ok := value.(GObject); ok {
value = value.(GObject).Object
}
if _, ok := value.(GValue); ok {
value = value.(GValue).Value
}
switch value.(type) {
case bool:
gv = C.init_gvalue_bool(gbool(value.(bool)))
break
case byte:
gv = C.init_gvalue_byte(C.guchar(value.(byte)))
break
case int:
gv = C.init_gvalue_int(C.gint(value.(int)))
break
case uint:
gv = C.init_gvalue_uint(C.guint(value.(uint)))
break
case int64:
gv = C.init_gvalue_int64(C.gint64(value.(int64)))
break
case float32:
gv = C.init_gvalue_double(C.gdouble(value.(float32)))
break
case float64:
gv = C.init_gvalue_double(C.gdouble(value.(float64)))
break
case string:
{
pval := C.CString(value.(string))
defer C.free_string(pval)
gv = C.init_gvalue_string(C.to_gcharptr(pval))
}
break
default:
//gv = C.init_gvalue_pointer(C.gpointer(unsafe.Pointer(&value)));
break
}
return gv
}
示例4: NewRGBA
func NewRGBA(values ...float64) *RGBA {
c := &RGBA{}
if len(values) > 0 {
c.RGBA.red = C.gdouble(values[0])
}
if len(values) > 1 {
c.RGBA.green = C.gdouble(values[1])
}
if len(values) > 2 {
c.RGBA.blue = C.gdouble(values[2])
}
if len(values) > 3 {
c.RGBA.alpha = C.gdouble(values[3])
}
return c
}
示例5: NewRGBA
func NewRGBA(values ...float64) *RGBA {
cval := C.GdkRGBA{}
c := &RGBA{&cval}
if len(values) > 0 {
c.rgba.red = C.gdouble(values[0])
}
if len(values) > 1 {
c.rgba.green = C.gdouble(values[1])
}
if len(values) > 2 {
c.rgba.blue = C.gdouble(values[2])
}
if len(values) > 3 {
c.rgba.alpha = C.gdouble(values[3])
}
return c
}
示例6: cListDouble
func cListDouble(value []float64) *C.gdouble {
var clist *C.gdouble
clist = (*C.gdouble)(C.malloc(C.size_t(int(unsafe.Sizeof(*clist)) * len(value))))
for i, e := range value {
(*(*[999999]C.gdouble)(unsafe.Pointer(clist)))[i] = C.gdouble(e)
}
return clist
}
示例7: newSpinbox
func newSpinbox(min int, max int) Spinbox {
// gtk_spin_button_new_with_range() initially sets its value to the minimum value
widget := C.gtk_spin_button_new_with_range(C.gdouble(min), C.gdouble(max), 1)
s := &spinbox{
controlSingleWidget: newControlSingleWidget(widget),
spinbutton: (*C.GtkSpinButton)(unsafe.Pointer(widget)),
changed: newEvent(),
}
C.gtk_spin_button_set_digits(s.spinbutton, 0) // integers
C.gtk_spin_button_set_numeric(s.spinbutton, C.TRUE) // digits only
// this isn't specifically documented as the signal to connect to until 3.14
// it has existed as far back as 3.4, though, if not earlier
// there's also ::change-value which is for keyboard changing
g_signal_connect(
C.gpointer(unsafe.Pointer(s.spinbutton)),
"value-changed",
C.GCallback(C.spinboxChanged),
C.gpointer(unsafe.Pointer(s)))
return s
}
示例8: Seek
// Seek() is a wrapper around gst_element_seek().
func (v *Element) Seek(rate float64, format Format, flags SeekFlags, startType SeekType, start int64, stopType SeekType, stop int64) bool {
c := C.gst_element_seek(v.native(),
C.gdouble(rate),
C.GstFormat(format),
C.GstSeekFlags(flags),
C.GstSeekType(startType),
C.gint64(start),
C.GstSeekType(stopType),
C.gint64(stop))
return gobool(c)
}
示例9: Set
// Set value to i
func (v *Value) Set(i interface{}) {
if vg, ok := i.(ValueGetter); ok {
vg.Value().Copy(v)
return
}
// Other types
r := reflect.ValueOf(i)
switch r.Kind() {
case reflect.Invalid:
C.g_value_reset(v.g())
case reflect.Bool:
C.g_value_set_boolean(v.g(), gBoolean(r.Bool()))
case reflect.Int:
C.g_value_set_long(v.g(), C.glong(i.(int)))
case reflect.Int8:
C.g_value_set_schar(v.g(), C.gint8(i.(int8)))
case reflect.Int32:
C.g_value_set_int(v.g(), C.gint(i.(int32)))
case reflect.Int64:
C.g_value_set_int64(v.g(), C.gint64(i.(int64)))
case reflect.Uint:
C.g_value_set_ulong(v.g(), C.gulong(i.(uint)))
case reflect.Uint8:
C.g_value_set_uchar(v.g(), C.guchar(i.(uint8)))
case reflect.Uint32:
C.g_value_set_uint(v.g(), C.guint(i.(uint32)))
case reflect.Uint64:
C.g_value_set_uint64(v.g(), C.guint64(i.(uint64)))
case reflect.Float32:
C.g_value_set_float(v.g(), C.gfloat(i.(float32)))
case reflect.Float64:
C.g_value_set_double(v.g(), C.gdouble(i.(float64)))
case reflect.Ptr:
C.g_value_set_pointer(v.g(), C.gpointer(r.Pointer()))
case reflect.String:
C.g_value_set_static_string(v.g(), (*C.gchar)(C.CString(r.String())))
default:
panic("Can't represent Go value in Glib type system.")
}
}
示例10: SetValue
func (s *spinbox) SetValue(value int) {
var min, max C.gdouble
C.gtk_spin_button_get_range(s.spinbutton, &min, &max)
if value < int(min) {
value = int(min)
}
if value > int(max) {
value = int(max)
}
C.gtk_spin_button_set_value(s.spinbutton, C.gdouble(value))
}
示例11: Set
// Set is a generic wrapper around g_key_file_set_xxx() with type assertion.
func (kf *KeyFile) Set(group string, key string, uncasted interface{}) error {
cGroup := (*C.gchar)(C.CString(group))
defer C.g_free(C.gpointer(cGroup))
cKey := (*C.gchar)(C.CString(key))
defer C.g_free(C.gpointer(cKey))
switch value := uncasted.(type) {
case bool:
C.g_key_file_set_boolean(kf.cKey, cGroup, cKey, cBool(value))
case int:
C.g_key_file_set_integer(kf.cKey, cGroup, cKey, C.gint(value))
case float64:
C.g_key_file_set_double(kf.cKey, cGroup, cKey, C.gdouble(value))
case string:
cstr := (*C.gchar)(C.CString(value))
defer C.g_free(C.gpointer(cstr))
C.g_key_file_set_string(kf.cKey, cGroup, cKey, cstr)
case []bool:
clist := cListBool(value)
defer C.g_free(C.gpointer(clist))
C.g_key_file_set_boolean_list(kf.cKey, cGroup, cKey, clist, C.gsize(len(value)))
case []int:
clist := cListInt(value)
defer C.g_free(C.gpointer(clist))
C.g_key_file_set_integer_list(kf.cKey, cGroup, cKey, clist, C.gsize(len(value)))
case []float64:
clist := cListDouble(value)
defer C.g_free(C.gpointer(clist))
C.g_key_file_set_double_list(kf.cKey, cGroup, cKey, clist, C.gsize(len(value)))
case []string:
clist := cListString(value)
C.g_key_file_set_string_list(kf.cKey, cGroup, cKey, clist, C.gsize(len(value)))
for i := range value {
C.g_free(C.gpointer((*(*[999999]*C.gchar)(unsafe.Pointer(clist)))[i]))
}
C.g_free(C.gpointer(clist))
default:
return errors.New("type unknown")
}
return nil
}
示例12: SetAngle
func (self *Label) SetAngle(angle float64) {
C.gtk_label_set_angle(self.object, C.gdouble(angle))
}
示例13: SetY
func (o *dockIcon) SetY(f float64) { o.Ptr.fY = C.gdouble(f) }
示例14: SetDouble
// SetDouble is a wrapper around g_settings_set_double().
func (v *Settings) SetDouble(name string, value float64) bool {
cstr1 := (*C.gchar)(C.CString(name))
defer C.free(unsafe.Pointer(cstr1))
return gobool(C.g_settings_set_double(v.native(), cstr1, C.gdouble(value)))
}
示例15: SetPercent
func (p *progressbar) SetPercent(percent int) {
if percent < 0 || percent > 100 {
panic(fmt.Errorf("given ProgressBar percentage %d out of range", percent))
}
C.gtk_progress_bar_set_fraction(p.pbar, C.gdouble(percent)/100)
}