作者:rosatole
项目:coyi
// 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
}
作者:jkeys08
项目:go-gtk
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)
}
作者:matt
项目:go-gt
//-----------------------------------------------------------------------
// 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
}
作者:Lazysho
项目:gotk
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
}
作者:yamnikov-ole
项目:gotk
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
}
作者:sq
项目:godoc
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
}
作者:sjn197
项目:u
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
}
作者:spreadspac
项目:go-gstreame
// 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)
}
作者:ziute
项目:gli
// 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.")
}
}
作者:sjn197
项目:u
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))
}
作者:sq
项目:godoc
// 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
}
作者:naps
项目:go-gtk
func (self *Label) SetAngle(angle float64) {
C.gtk_label_set_angle(self.object, C.gdouble(angle))
}
作者:sq
项目:godoc
func (o *dockIcon) SetY(f float64) { o.Ptr.fY = C.gdouble(f) }
作者:rosatole
项目:coyi
// 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)))
}
作者:sjn197
项目:u
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)
}
作者:twstrik
项目:gotk
// SetAngle is a wrapper around gtk_label_set_angle().
func (v *Label) SetAngle(angle float64) {
C.gtk_label_set_angle(v.native(), C.gdouble(angle))
}
作者:yamnikov-ole
项目:gotk
// SetResolution is a wrapper around gdk_screen_set_resolution().
func (v *Screen) SetResolution(r float64) {
C.gdk_screen_set_resolution(v.native(), C.gdouble(r))
}
作者:rosatole
项目:coyi
// AddOffsetValue() is a wrapper around gtk_level_bar_add_offset_value().
func (v *LevelBar) AddOffsetValue(name string, value float64) {
cstr := C.CString(name)
defer C.free(unsafe.Pointer(cstr))
C.gtk_level_bar_add_offset_value(v.native(), (*C.gchar)(cstr), C.gdouble(value))
}
作者:sq
项目:godoc
func (o *dockIcon) SetXAtRest(f float64) { o.Ptr.fXAtRest = C.gdouble(f) }
作者:reuse
项目:clutter-helpe
func FromLua(code string) map[string]unsafe.Pointer {
lua := lgo.NewLua()
bindings := make(map[string]unsafe.Pointer)
processActorArgs := func(actor *C.ClutterActor, args map[interface{}]interface{}) unsafe.Pointer {
pointer := unsafe.Pointer(actor)
var minFilter, magFilter *C.ClutterScalingFilter
var scaleX C.gdouble = 1.0
var scaleY C.gdouble = 1.0
var translationX, translationY, translationZ C.gfloat
for k, v := range args {
switch key := k.(type) {
case string:
switch key {
case "id":
bindings[v.(string)] = pointer
case "bgcolor", "background_color":
C.clutter_actor_set_background_color(actor, NewColorFromString(v.(string)))
case "clip_rect":
clip := (*C.ClutterRect)(v.(unsafe.Pointer))
C.clutter_actor_set_clip(actor,
C.gfloat(clip.origin.x),
C.gfloat(clip.origin.y),
C.gfloat(clip.size.width),
C.gfloat(clip.size.height))
case "content":
C.clutter_actor_set_content(actor, (*C.ClutterContent)(v.(unsafe.Pointer)))
case "content_gravity":
switch v.(string) {
case "top-left":
C.clutter_actor_set_content_gravity(actor, C.CLUTTER_CONTENT_GRAVITY_TOP_LEFT)
case "top":
C.clutter_actor_set_content_gravity(actor, C.CLUTTER_CONTENT_GRAVITY_TOP)
case "top-right":
C.clutter_actor_set_content_gravity(actor, C.CLUTTER_CONTENT_GRAVITY_TOP_RIGHT)
case "left":
C.clutter_actor_set_content_gravity(actor, C.CLUTTER_CONTENT_GRAVITY_LEFT)
case "center":
C.clutter_actor_set_content_gravity(actor, C.CLUTTER_CONTENT_GRAVITY_CENTER)
case "right":
C.clutter_actor_set_content_gravity(actor, C.CLUTTER_CONTENT_GRAVITY_RIGHT)
case "bottom-left":
C.clutter_actor_set_content_gravity(actor, C.CLUTTER_CONTENT_GRAVITY_BOTTOM_LEFT)
case "bottom":
C.clutter_actor_set_content_gravity(actor, C.CLUTTER_CONTENT_GRAVITY_BOTTOM)
case "bottom-right":
C.clutter_actor_set_content_gravity(actor, C.CLUTTER_CONTENT_GRAVITY_BOTTOM_RIGHT)
case "resize-fill":
C.clutter_actor_set_content_gravity(actor, C.CLUTTER_CONTENT_GRAVITY_RESIZE_FILL)
case "resize-aspect":
C.clutter_actor_set_content_gravity(actor, C.CLUTTER_CONTENT_GRAVITY_RESIZE_ASPECT)
default:
log.Fatalf("unknown content gravity: %s", v.(string))
}
case "content_repeat":
switch v.(string) {
case "none":
C.clutter_actor_set_content_repeat(actor, C.CLUTTER_REPEAT_NONE)
case "x", "x-axis":
C.clutter_actor_set_content_repeat(actor, C.CLUTTER_REPEAT_X_AXIS)
case "y", "y-axis":
C.clutter_actor_set_content_repeat(actor, C.CLUTTER_REPEAT_Y_AXIS)
case "both":
C.clutter_actor_set_content_repeat(actor, C.CLUTTER_REPEAT_BOTH)
default:
log.Fatalf("unknown content repeat: %s", v.(string))
}
case "x", "fixed_x":
C.clutter_actor_set_x(actor, C.gfloat(v.(float64)))
case "y", "fixed_y":
C.clutter_actor_set_y(actor, C.gfloat(v.(float64)))
case "height":
C.clutter_actor_set_height(actor, C.gfloat(v.(float64)))
case "layout", "layout_manager":
C.clutter_actor_set_layout_manager(actor, (*C.ClutterLayoutManager)(v.(unsafe.Pointer)))
case "mag_filter", "magnification_filter":
magFilter = (*C.ClutterScalingFilter)(v.(unsafe.Pointer))
C.clutter_actor_set_content_scaling_filters(actor, *minFilter, *magFilter)
case "margin_bottom":
C.clutter_actor_set_margin_bottom(actor, C.gfloat(v.(float64)))
case "margin_left":
C.clutter_actor_set_margin_left(actor, C.gfloat(v.(float64)))
case "margin_right":
C.clutter_actor_set_margin_right(actor, C.gfloat(v.(float64)))
case "margin_top":
C.clutter_actor_set_margin_top(actor, C.gfloat(v.(float64)))
//TODO min height
//TODO min width
case "min_filter", "minification_filter":
minFilter = (*C.ClutterScalingFilter)(v.(unsafe.Pointer))
C.clutter_actor_set_content_scaling_filters(actor, *minFilter, *magFilter)
case "name":
C.clutter_actor_set_name(actor, toGStr(v.(string)))
//TODO natural height
//TODO natural width
case "offscreen_redirect":
switch v.(string) {
case "auto", "automatic-for-opacity":
C.clutter_actor_set_offscreen_redirect(actor, C.CLUTTER_OFFSCREEN_REDIRECT_AUTOMATIC_FOR_OPACITY)
case "always":
//.........这里部分代码省略.........