本文整理汇总了Golang中C.gtk_container_add函数的典型用法代码示例。如果您正苦于以下问题:Golang gtk_container_add函数的具体用法?Golang gtk_container_add怎么用?Golang gtk_container_add使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了gtk_container_add函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: 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()
}
示例2: newScroller
func newScroller(widget *C.GtkWidget, native bool, bordered bool, overlay bool) *scroller {
var o *C.GtkWidget
scrollwidget := C.gtk_scrolled_window_new(nil, nil)
if overlay {
o = C.gtk_overlay_new()
}
s := &scroller{
scrollwidget: scrollwidget,
scrollcontainer: (*C.GtkContainer)(unsafe.Pointer(scrollwidget)),
scrollwindow: (*C.GtkScrolledWindow)(unsafe.Pointer(scrollwidget)),
overlaywidget: o,
overlaycontainer: (*C.GtkContainer)(unsafe.Pointer(o)),
overlay: (*C.GtkOverlay)(unsafe.Pointer(o)),
}
// give the scrolled window a border (thanks to jlindgren in irc.gimp.net/#gtk+)
if bordered {
C.gtk_scrolled_window_set_shadow_type(s.scrollwindow, C.GTK_SHADOW_IN)
}
if native {
C.gtk_container_add(s.scrollcontainer, widget)
} else {
C.gtk_scrolled_window_add_with_viewport(s.scrollwindow, widget)
}
s.addShowWhich = s.scrollwidget
if overlay {
C.gtk_container_add(s.overlaycontainer, s.scrollwidget)
s.addShowWhich = s.overlaywidget
}
return s
}
示例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: newGroup
func newGroup(text string, control Control) Group {
ctext := togstr(text)
defer freegstr(ctext)
widget := C.gtk_frame_new(ctext)
g := &group{
controlSingleWidget: newControlSingleWidget(widget),
gcontainer: (*C.GtkContainer)(unsafe.Pointer(widget)),
frame: (*C.GtkFrame)(unsafe.Pointer(widget)),
child: control,
}
// with GTK+, groupboxes by default have frames and slightly x-offset regular text
// they should have no frame and fully left-justified, bold text
var yalign C.gfloat
// preserve default y-alignment
C.gtk_frame_get_label_align(g.frame, nil, &yalign)
C.gtk_frame_set_label_align(g.frame, 0, yalign)
C.gtk_frame_set_shadow_type(g.frame, C.GTK_SHADOW_NONE)
label := (*C.GtkLabel)(unsafe.Pointer(C.gtk_frame_get_label_widget(g.frame)))
// this is the boldness level used by GtkPrintUnixDialog
// (it technically uses "bold" but see pango's pango-enum-types.c for the name conversion; GType is weird)
bold := C.pango_attr_weight_new(C.PANGO_WEIGHT_BOLD)
boldlist := C.pango_attr_list_new()
C.pango_attr_list_insert(boldlist, bold)
C.gtk_label_set_attributes(label, boldlist)
C.pango_attr_list_unref(boldlist) // thanks baedert in irc.gimp.net/#gtk+
g.container = newContainer()
g.child.setParent(g.container.parent())
g.container.resize = g.child.resize
C.gtk_container_add(g.gcontainer, g.container.widget)
return g
}
示例5: 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(),
child: control,
}
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()
w.child.setParent(w.container.parent())
w.container.resize = w.child.resize
C.gtk_container_add(w.wc, w.container.widget)
// 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
}
示例6: gtkNewWindowLayout
// this should allow us to resize the window arbitrarily
// thanks to Company in irc.gimp.net/#gtk+
func gtkNewWindowLayout() *C.GtkWidget {
layout := C.gtk_layout_new(nil, nil)
scrollarea := C.gtk_scrolled_window_new((*C.GtkAdjustment)(nil), (*C.GtkAdjustment)(nil))
C.gtk_container_add((*C.GtkContainer)(unsafe.Pointer(scrollarea)), layout)
// never show scrollbars; we're just doing this to allow arbitrary resizes
C.gtk_scrolled_window_set_policy((*C.GtkScrolledWindow)(unsafe.Pointer(scrollarea)),
C.GTK_POLICY_NEVER, C.GTK_POLICY_NEVER)
return scrollarea
}
示例7: newScroller
func newScroller(widget *C.GtkWidget, native bool, bordered bool, overlay bool) *scroller {
s := new(scroller)
s.controlSingleWidget = newControlSingleWidget(widget)
s.scrollwidget = C.gtk_scrolled_window_new(nil, nil)
s.scrollcontainer = (*C.GtkContainer)(unsafe.Pointer(s.scrollwidget))
s.scrollwindow = (*C.GtkScrolledWindow)(unsafe.Pointer(s.scrollwidget))
// any actual changing operations need to be done to the GtkScrolledWindow
// that is, everything /except/ preferredSize() are done to the GtkScrolledWindow
s.scroller = newControlSingleWidget(s.scrollwidget)
s.fsetParent = s.scroller.fsetParent
s.fresize = s.scroller.fresize
// in GTK+ 3.4 we still technically need to use the separate gtk_scrolled_window_add_with_viewpoint()/gtk_container_add() spiel for adding the widget to the scrolled window
if native {
C.gtk_container_add(s.scrollcontainer, s.widget)
} else {
C.gtk_scrolled_window_add_with_viewport(s.scrollwindow, s.widget)
}
// give the scrolled window a border (thanks to jlindgren in irc.gimp.net/#gtk+)
if bordered {
C.gtk_scrolled_window_set_shadow_type(s.scrollwindow, C.GTK_SHADOW_IN)
}
if overlay {
// ok things get REALLY fun now
// we now have to do all of the above again
s.overlaywidget = C.gtk_overlay_new()
s.overlaycontainer = (*C.GtkContainer)(unsafe.Pointer(s.overlaywidget))
s.overlayoverlay = (*C.GtkOverlay)(unsafe.Pointer(s.overlaywidget))
s.overlay = newControlSingleWidget(s.overlaywidget)
s.fsetParent = s.overlay.fsetParent
s.fresize = s.overlay.fresize
C.gtk_container_add(s.overlaycontainer, s.scrollwidget)
}
return s
}
示例8: Append
func (t *tab) Append(name string, control Control) {
c := newContainer()
t.tabs = append(t.tabs, c)
// this calls gtk_container_add(), which, according to gregier in irc.gimp.net/#gtk+, acts just like gtk_notebook_append_page()
C.gtk_container_add(t.container, c.widget)
control.setParent(c.parent())
c.resize = control.resize
t.children = append(t.children, control)
cname := togstr(name)
defer freegstr(cname)
C.gtk_notebook_set_tab_label_text(t.notebook,
// unfortunately there does not seem to be a gtk_notebook_set_nth_tab_label_text()
C.gtk_notebook_get_nth_page(t.notebook, C.gint(len(t.tabs)-1)),
cname)
}
示例9: gListboxNew
func gListboxNew(multisel bool) *C.GtkWidget {
store := C.gtkListStoreNew()
widget := C.gtk_tree_view_new_with_model((*C.GtkTreeModel)(unsafe.Pointer(store)))
tv := (*C.GtkTreeView)(unsafe.Pointer(widget))
column := C.gtkTreeViewColumnNewWithAttributes(C.gtk_cell_renderer_text_new())
C.gtk_tree_view_column_set_sizing(column, C.GTK_TREE_VIEW_COLUMN_AUTOSIZE)
C.gtk_tree_view_column_set_resizable(column, C.FALSE) // not resizeable by the user; just autoresize
C.gtk_tree_view_append_column(tv, column)
C.gtk_tree_view_set_headers_visible(tv, C.FALSE)
sel := C.GTK_SELECTION_SINGLE
if multisel {
sel = C.GTK_SELECTION_MULTIPLE
}
C.gtk_tree_selection_set_mode(C.gtk_tree_view_get_selection(tv), C.GtkSelectionMode(sel))
scrollarea := C.gtk_scrolled_window_new((*C.GtkAdjustment)(nil), (*C.GtkAdjustment)(nil))
// thanks to jlindgren in irc.gimp.net/#gtk+
C.gtk_scrolled_window_set_shadow_type((*C.GtkScrolledWindow)(unsafe.Pointer(scrollarea)), C.GTK_SHADOW_IN)
C.gtk_container_add((*C.GtkContainer)(unsafe.Pointer(scrollarea)), widget)
return scrollarea
}
示例10: Add
// interfaces
func (self Container) Add(w WidgetLike) {
C.gtk_container_add(self.object, w.W().object)
}
示例11: FromLua
//.........这里部分代码省略.........
if IsActor(value) { // actor child
C.clutter_actor_add_child(actor, (*C.ClutterActor)(value))
} else if IsAction(value) { // action
C.clutter_actor_add_action(actor, (*C.ClutterAction)(value))
} else if IsConstraint(value) { // constraint
C.clutter_actor_add_constraint(actor, (*C.ClutterConstraint)(value))
} else if IsEffect(value) { // effect
C.clutter_actor_add_effect(actor, (*C.ClutterEffect)(value))
} else {
log.Fatalf("unknown subelement type")
}
}
}
}
return pointer
}
processBoxArgs := func(box *C.ClutterLayoutManager, args map[string]interface{}) {
//TODO
}
lua.RegisterFunctions(map[string]interface{}{
// actors
"Actor": func(args map[interface{}]interface{}) unsafe.Pointer {
actor := C.clutter_actor_new()
return processActorArgs(actor, args)
},
"Stage": func(args map[interface{}]interface{}) unsafe.Pointer {
window := C.gtk_window_new(C.GTK_WINDOW_TOPLEVEL)
embed := C.gtk_clutter_embed_new()
C.gtk_container_add((*C.GtkContainer)(unsafe.Pointer(window)), embed)
actor := C.gtk_clutter_embed_get_stage((*C.GtkClutterEmbed)(unsafe.Pointer(embed)))
C.clutter_actor_show(actor)
C.gtk_widget_show_all((*C.GtkWidget)(unsafe.Pointer(window)))
pointer := processActorArgs(actor, args)
stage := (*C.ClutterStage)(unsafe.Pointer(actor))
for k, v := range args {
//TODO other properties
switch key := k.(type) {
case string:
switch key {
case "title":
C.clutter_stage_set_title(stage, toGStr(v.(string)))
}
}
}
return pointer
},
"Text": func(args map[interface{}]interface{}) unsafe.Pointer {
actor := C.clutter_text_new()
pointer := processActorArgs(actor, args)
text := (*C.ClutterText)(unsafe.Pointer(actor))
for k, v := range args {
//TODO other properties
switch key := k.(type) {
case string:
switch key {
case "text":
C.clutter_text_set_text(text, toGStr(v.(string)))
case "use_markup":
b := C.FALSE
if v.(bool) {
示例12: setParent
func (c *container) setParent(p *controlParent) {
C.gtk_container_add(p.c, c.layoutwidget)
}
示例13: gtk_container_add
func gtk_container_add(container GtkWidget, widget GtkWidget) {
C.gtk_container_add(Arg(container), Arg(widget))
}
示例14: basesetParent
func basesetParent(c controlPrivate, p *controlParent) {
widget := c.widget() // avoid multiple interface lookups
C.gtk_container_add(p.c, widget)
// make sure the new widget is shown if not explicitly hidden
C.gtk_widget_show_all(widget)
}
示例15: setParent
func (s *scroller) setParent(p *controlParent) {
C.gtk_container_add(p.c, s.addShowWhich)
// see basesetParent() above for why we call gtk_widget_show_all()
C.gtk_widget_show_all(s.addShowWhich)
}