本文整理汇总了Golang中C.gint函数的典型用法代码示例。如果您正苦于以下问题:Golang gint函数的具体用法?Golang gint怎么用?Golang gint使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了gint函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Repaint
func (a *area) Repaint(r image.Rectangle) {
r = image.Rect(0, 0, a.width, a.height).Intersect(r)
if r.Empty() {
return
}
C.gtk_widget_queue_draw_area(a.widget, C.gint(r.Min.X), C.gint(r.Min.Y), C.gint(r.Dx()), C.gint(r.Dy()))
}
示例2: DumpUnionInfo
func DumpUnionInfo(info *C.GIUnionInfo) {
nFields := C.g_union_info_get_n_fields(info)
p("%d fields\n", nFields)
for i := C.gint(0); i < nFields; i++ {
field := C.g_union_info_get_field(info, i)
DumpFieldInfo(field)
}
nMethods := C.g_union_info_get_n_methods(info)
p("%d methods\n", nMethods)
for i := C.gint(0); i < nMethods; i++ {
method := C.g_union_info_get_method(info, i)
DumpFunctionInfo(method)
}
isDiscriminated := C.g_union_info_is_discriminated(info) == C.gboolean(1)
p("is discriminated %v\n", isDiscriminated)
if isDiscriminated {
offset := C.g_union_info_get_discriminator_offset(info)
p("discriminated offset %d\n", offset)
discriminatedType := C.g_union_info_get_discriminator_type(info)
p("discriminated type %d\n", discriminatedType)
DumpTypeInfo(discriminatedType)
for i := C.gint(0); i < nFields; i++ {
discriminator := C.g_union_info_get_discriminator(info, i)
DumpConstantInfo(discriminator)
}
}
size := C.g_union_info_get_size(info)
p("size %d bytes\n", size)
align := C.g_union_info_get_alignment(info)
p("alignment %d bytes\n", align)
}
示例3: CreateWindow
func CreateWindow(title string, width int, height int) unsafe.Pointer {
Logger.Println("CreateWindow")
// Create window.
window := C.gtk_window_new(C.GTK_WINDOW_TOPLEVEL)
// Default size.
C.gtk_window_set_default_size(C.ToGtkWindow(window),
C.gint(width), C.gint(height))
// Center.
C.gtk_window_set_position(C.ToGtkWindow(window), C.GTK_WIN_POS_CENTER)
// Title.
csTitle := C.CString(title)
defer C.free(unsafe.Pointer(csTitle))
C.gtk_window_set_title(C.ToGtkWindow(window), (*C.gchar)(csTitle))
// TODO: focus
// g_signal_connect(window, "focus", G_CALLBACK(&HandleFocus), NULL);
// CEF requires a container. Embedding browser in a top
// level window fails.
vbox := C.gtk_vbox_new(0, 0)
C.gtk_container_add(C.ToGtkContainer(window), vbox)
// Show.
C.gtk_widget_show_all(window)
return unsafe.Pointer(vbox)
}
示例4: GetChildAt
// GDK_AVAILABLE_IN_3_2
// GtkWidget *gtk_grid_get_child_at (GtkGrid *grid,
// gint left,
// gint top);
func (g *Grid) GetChildAt(left, top int32) *Widget {
ret := C.gtk_grid_get_child_at(g.c, C.gint(left), C.gint(top))
if ret == nil {
return nil
}
return &Widget{ret}
}
示例5: GetIterAtPosition
// GetIterAtPosition is a wrapper around gtk_text_view_get_iter_at_position().
func (v *TextView) GetIterAtPosition(x, y int) (*TextIter, int) {
var iter TextIter
var trailing C.gint
iiter := (C.GtkTextIter)(iter)
C.gtk_text_view_get_iter_at_position(v.native(), &iiter, &trailing, C.gint(x), C.gint(y))
return &iter, int(trailing)
}
示例6: startGui
func startGui(width, height int, title string, port int) {
C.gtk_init(nil, nil) //gtk.Init(nil)
window := C.window
window = C.gtk_window_new(C.GTK_WINDOW_TOPLEVEL)
C.gtk_window_set_title(C.to_GtkWindow(window), C.to_gcharptr(C.CString(title)))
C.connect_destroy(window)
vbox := C.gtk_hbox_new(0, 1)
C.webview = C._new_webkit()
C.gtk_container_add(C.to_GtkContainer(vbox), C.webview)
C.loadUri(C.webview, C.to_gcharptr(C.CString(fmt.Sprintf("http://127.0.0.1:%d", port))))
C.gtk_container_add(C.to_GtkContainer(window), vbox)
C.gtk_widget_set_size_request(window, C.gint(width), C.gint(height))
C.gtk_widget_show(vbox)
C.gtk_widget_show(window) //Window.ShowAll()
C.gtk_widget_show(C.webview)
/*
This only matters if proxy is stupid!
proxy := os.Getenv("HTTP_PROXY")
if len(proxy) > 0 {
ptr := C.CString(uri)
C.proxyshit(ptr)
C.free(ptr)
}
*/
C.gtk_main() //gtk.GtkMain()
}
示例7: newWindow
func newWindow(title string, width int, height int, control Control) *window {
widget := C.gtk_window_new(C.GTK_WINDOW_TOPLEVEL)
ctitle := togstr(title)
defer freegstr(ctitle)
w := &window{
widget: widget,
wc: (*C.GtkContainer)(unsafe.Pointer(widget)),
bin: (*C.GtkBin)(unsafe.Pointer(widget)),
window: (*C.GtkWindow)(unsafe.Pointer(widget)),
closing: newEvent(),
}
C.gtk_window_set_title(w.window, ctitle)
g_signal_connect(
C.gpointer(unsafe.Pointer(w.window)),
"delete-event",
C.GCallback(C.windowClosing),
C.gpointer(unsafe.Pointer(w)))
C.gtk_window_resize(w.window, C.gint(width), C.gint(height))
w.container = newContainer(control)
w.container.setParent(&controlParent{w.wc})
// for dialogs; otherwise, they will be modal to all windows, not just this one
w.group = C.gtk_window_group_new()
C.gtk_window_group_add_window(w.group, w.window)
return w
}
示例8: toGValue
func toGValue(v interface{}) *C.GValue {
value := C.gvalue_new()
switch reflect.TypeOf(v).Kind() {
case reflect.String:
C.g_value_init(value, C.G_TYPE_STRING)
cStr := C.CString(v.(string))
defer C.free(unsafe.Pointer(cStr))
C.g_value_set_string(value, (*C.gchar)(unsafe.Pointer(cStr)))
case reflect.Int:
C.g_value_init(value, C.G_TYPE_INT)
C.g_value_set_int(value, C.gint(v.(int)))
case reflect.Struct:
switch rv := v.(type) {
case Fraction:
C.g_value_init(value, C.gst_fraction_get_type())
C.gst_value_set_fraction(value, C.gint(rv.N), C.gint(rv.D))
default:
p("unknown struct type %v\n", v)
panic("fixme") //TODO
}
case reflect.Ptr:
switch reflect.TypeOf(v) {
case gstCapsType:
C.g_value_init(value, C.gst_caps_get_type())
C.gst_value_set_caps(value, v.(*C.GstCaps))
default:
panic(fmt.Sprintf("unknown type %v", v)) //TODO
}
default:
panic(fmt.Sprintf("unknown type %v", v)) //TODO
}
return value
}
示例9: PixbufSimpleAnimNew
/*
Creates a new, empty animation.
*/
func PixbufSimpleAnimNew(width int, height int, rate float32) (return__ *PixbufSimpleAnim) {
var __cgo__return__ interface{}
__cgo__return__ = C.gdk_pixbuf_simple_anim_new(C.gint(width), C.gint(height), C.gfloat(rate))
if __cgo__return__ != nil {
return__ = NewPixbufSimpleAnimFromCPointer(unsafe.Pointer(reflect.ValueOf(__cgo__return__).Pointer()))
}
return
}
示例10: draw_selections
func draw_selections(viewp, bufferp, crp unsafe.Pointer, mark_pairs []unsafe.Pointer) {
view := (*C.GtkTextView)(viewp)
buffer := (*C.GtkTextBuffer)(bufferp)
cr := (*C.cairo_t)(crp)
var alloc C.GtkAllocation
C.gtk_widget_get_allocation((*C.GtkWidget)(viewp), &alloc)
n := len(mark_pairs)
var start_mark, stop_mark *C.GtkTextMark
var location C.GdkRectangle
var iter C.GtkTextIter
var x, y C.gint
var dx, dy C.double
for i := 0; i < n; i += 2 {
start_mark = (*C.GtkTextMark)(mark_pairs[i])
C.gtk_text_buffer_get_iter_at_mark(buffer, &iter, start_mark)
C.gtk_text_view_get_iter_location(view, &iter, &location)
C.gtk_text_view_buffer_to_window_coords(view, C.GTK_TEXT_WINDOW_WIDGET, C.gint(location.x), C.gint(location.y), &x, &y)
if C.int(x) > alloc.width || C.int(y) > alloc.height || x < 0 || y < 0 {
continue
}
dx = C.double(x)
dy = C.double(y)
C.cairo_set_source_rgb(cr, 1, 0, 0)
C.cairo_move_to(cr, dx, dy)
C.cairo_set_line_width(cr, 2)
C.cairo_line_to(cr, dx+6, dy)
C.cairo_stroke(cr)
C.cairo_move_to(cr, dx, dy)
C.cairo_set_line_width(cr, 1)
C.cairo_line_to(cr, dx, dy+C.double(location.height))
C.cairo_stroke(cr)
stop_mark = (*C.GtkTextMark)(mark_pairs[i+1])
C.gtk_text_buffer_get_iter_at_mark(buffer, &iter, stop_mark)
C.gtk_text_view_get_iter_location(view, &iter, &location)
C.gtk_text_view_buffer_to_window_coords(view, C.GTK_TEXT_WINDOW_WIDGET, C.gint(location.x), C.gint(location.y), &x, &y)
if C.int(x) > alloc.width || C.int(y) > alloc.height || x < 0 || y < 0 {
continue
}
dx = C.double(x)
dy = C.double(y)
C.cairo_set_source_rgb(cr, 0, 1, 0)
C.cairo_move_to(cr, dx, dy)
C.cairo_set_line_width(cr, 1)
C.cairo_line_to(cr, dx, dy+C.double(location.height))
C.cairo_stroke(cr)
C.cairo_move_to(cr, dx, dy+C.double(location.height))
C.cairo_set_line_width(cr, 2)
C.cairo_line_to(cr, dx-6, dy+C.double(location.height))
C.cairo_stroke(cr)
}
}
示例11: TranslateCoordinates
// TranslateCoordinates is a wrapper around gtk_widget_translate_coordinates().
func (v *Widget) TranslateCoordinates(dest IWidget, srcX, srcY int) (destX, destY int, e error) {
cdest := nullableWidget(dest)
var cdestX, cdestY C.gint
c := C.gtk_widget_translate_coordinates(v.native(), cdest, C.gint(srcX), C.gint(srcY), &cdestX, &cdestY)
if !gobool(c) {
return 0, 0, errors.New("translate coordinates failed")
}
return int(cdestX), int(cdestY), nil
}
示例12: finishNewTable
func finishNewTable(b *tablebase, ty reflect.Type) Table {
widget := C.gtk_tree_view_new()
t := &table{
scroller: newScroller(widget, true, true, false), // natively scrollable; has a border; no overlay
tablebase: b,
treeview: (*C.GtkTreeView)(unsafe.Pointer(widget)),
crtocol: make(map[*C.GtkCellRendererToggle]int),
selected: newEvent(),
}
model := C.newTableModel(unsafe.Pointer(t))
t.model = model
t.modelgtk = (*C.GtkTreeModel)(unsafe.Pointer(model))
t.selection = C.gtk_tree_view_get_selection(t.treeview)
g_signal_connect(
C.gpointer(unsafe.Pointer(t.selection)),
"changed",
C.GCallback(C.tableSelectionChanged),
C.gpointer(unsafe.Pointer(t)))
C.gtk_tree_view_set_model(t.treeview, t.modelgtk)
for i := 0; i < ty.NumField(); i++ {
colname := ty.Field(i).Tag.Get("uicolumn")
if colname == "" {
colname = ty.Field(i).Name
}
cname := togstr(colname)
switch {
case ty.Field(i).Type == reflect.TypeOf((*image.RGBA)(nil)):
// can't use GDK_TYPE_PIXBUF here because it's a macro that expands to a function and cgo hates that
t.types = append(t.types, C.gdk_pixbuf_get_type())
C.tableAppendColumn(t.treeview, C.gint(i), cname,
C.gtk_cell_renderer_pixbuf_new(), attribPixbuf)
case ty.Field(i).Type.Kind() == reflect.Bool:
t.types = append(t.types, C.G_TYPE_BOOLEAN)
cr := C.gtk_cell_renderer_toggle_new()
crt := (*C.GtkCellRendererToggle)(unsafe.Pointer(cr))
t.crtocol[crt] = i
g_signal_connect(C.gpointer(unsafe.Pointer(cr)),
"toggled",
C.GCallback(C.goTableModel_toggled),
C.gpointer(unsafe.Pointer(t)))
C.tableAppendColumn(t.treeview, C.gint(i), cname,
cr, attribActive)
default:
t.types = append(t.types, C.G_TYPE_STRING)
C.tableAppendColumn(t.treeview, C.gint(i), cname,
C.gtk_cell_renderer_text_new(), attribText)
}
freegstr(cname) // free now (not deferred) to conserve memory
}
// and for some GtkTreeModel boilerplate
t.nColumns = C.gint(ty.NumField())
return t
}
示例13: Invalidate
func (v *GdkWindow) Invalidate(rect *Rectangle, invalidate_children bool) {
if rect != nil {
var _rect C.GdkRectangle
_rect.x = C.gint(rect.X)
_rect.y = C.gint(rect.Y)
_rect.width = C.gint(rect.Width)
_rect.height = C.gint(rect.Height)
C.gdk_window_invalidate_rect(v.Window, &_rect, bool2gboolean(invalidate_children))
} else {
C.gdk_window_invalidate_rect(v.Window, nil, bool2gboolean(invalidate_children))
}
}
示例14: AddPalette
// AddPalette() is a wrapper around gtk_color_chooser_add_palette().
func (v *ColorChooser) AddPalette(orientation Orientation, colors_per_line int, colors []*gdk.RGBA) {
n_colors := len(colors)
var c_colors []C.GdkRGBA
for _, c := range colors {
c_colors = append(c_colors, *(*C.GdkRGBA)(unsafe.Pointer(c.Native())))
}
C.gtk_color_chooser_add_palette(
v.native(),
C.GtkOrientation(orientation),
C.gint(colors_per_line),
C.gint(n_colors),
&c_colors[0],
)
}
示例15: Insert
// Insert is a wrapper around gtk_combo_box_text_insert().
func (v *ComboBoxText) Insert(position int, id, text string) {
cid := C.CString(id)
ctext := C.CString(text)
defer C.free(unsafe.Pointer(cid))
defer C.free(unsafe.Pointer(ctext))
C.gtk_combo_box_text_insert(v.native(), C.gint(position), (*C.gchar)(cid), (*C.gchar)(ctext))
}