这篇教程C++ GTK_SOCKET函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中GTK_SOCKET函数的典型用法代码示例。如果您正苦于以下问题:C++ GTK_SOCKET函数的具体用法?C++ GTK_SOCKET怎么用?C++ GTK_SOCKET使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了GTK_SOCKET函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: gtk_xtbin_realizestatic voidgtk_xtbin_realize (GtkWidget *widget){ GtkXtBin *xtbin; GtkAllocation allocation = { 0, 0, 200, 200 };#if GTK_CHECK_VERSION(2, 18, 0) GtkAllocation widget_allocation;#endif#ifdef DEBUG_XTBIN printf("gtk_xtbin_realize()/n");#endif g_return_if_fail (GTK_IS_XTBIN (widget)); xtbin = GTK_XTBIN (widget); /* caculate the allocation before realize */#if GTK_CHECK_VERSION(2, 24, 0) allocation.width = gdk_window_get_width(xtbin->parent_window); allocation.height = gdk_window_get_height(xtbin->parent_window);#else gint x, y, w, h, d; /* geometry of window */ gdk_window_get_geometry(xtbin->parent_window, &x, &y, &w, &h, &d); allocation.width = w; allocation.height = h;#endif gtk_widget_size_allocate (widget, &allocation);#ifdef DEBUG_XTBIN printf("initial allocation %d %d %d %d/n", x, y, w, h);#endif#if GTK_CHECK_VERSION(2, 18, 0) gtk_widget_get_allocation(widget, &widget_allocation); xtbin->width = widget_allocation.width; xtbin->height = widget_allocation.height;#else xtbin->width = widget->allocation.width; xtbin->height = widget->allocation.height;#endif /* use GtkSocket's realize */ (*GTK_WIDGET_CLASS(parent_class)->realize)(widget); /* create the Xt client widget */ xt_client_create(&(xtbin->xtclient), gtk_socket_get_id(GTK_SOCKET(xtbin)), xtbin->height, xtbin->width); xtbin->xtwindow = XtWindow(xtbin->xtclient.child_widget); gdk_flush(); /* now that we have created the xt client, add it to the socket. */ gtk_socket_add_id(GTK_SOCKET(widget), xtbin->xtwindow);}
开发者ID:0omega,项目名称:platform_external_webkit,代码行数:57,
示例2: awn_ua_alignment_add_idGdkWindow *awn_ua_alignment_add_id (AwnUAAlignment *self,GdkNativeWindow native_window){ GdkWindow * plugwin; AwnUAAlignmentPrivate *priv; priv = AWN_UA_ALIGNMENT_GET_PRIVATE (self); gtk_socket_add_id (GTK_SOCKET(priv->socket), native_window); plugwin = gtk_socket_get_plug_window (GTK_SOCKET(priv->socket)); g_signal_connect (priv->socket,"plug-removed", G_CALLBACK(awn_ua_alignment_plug_removed),self); gtk_widget_realize (priv->socket); gtk_widget_show_all (priv->socket); return plugwin;}
开发者ID:Sprezzatech,项目名称:avant-window-navigator,代码行数:15,
示例3: gnoclSocketCmd/***f* socket/gnoclSocketCmd * AUTHOR * PGB * SOURCE */int gnoclSocketCmd ( ClientData data, Tcl_Interp *interp, int objc, Tcl_Obj * const objv[] ){ int ret; GtkSocket *socket; if ( gnoclParseOptions ( interp, objc, objv, socketOptions ) != TCL_OK ) { gnoclClearOptions ( socketOptions ); return TCL_ERROR; } socket = GTK_SOCKET ( gtk_socket_new() ); gtk_widget_show ( GTK_WIDGET ( socket ) ); ret = gnoclSetOptions ( interp, socketOptions, G_OBJECT ( socket ), -1 ); if ( ret == TCL_OK ) ret = configure ( interp, socket, socketOptions ); gnoclClearOptions ( socketOptions ); if ( ret != TCL_OK ) { gtk_widget_destroy ( GTK_WIDGET ( socket ) ); return TCL_ERROR; } return gnoclRegisterWidget ( interp, GTK_WIDGET ( socket ), socketFunc );}
开发者ID:zdia,项目名称:gnocl,代码行数:36,
示例4: setup_new_socket_for_plugvoidsetup_new_socket_for_plug(struct Gtkabber *gtkabber){ struct ContainerData *cd; static int __id; { cd = malloc( sizeof *cd ); if (cd == NULL) { fprintf( stderr, "Can't malloc() *cd/n" ); exit( EXIT_FAILURE ); } memset( cd, '/0', sizeof *cd ); } cd->id = ++__id; cd->socket = gtk_socket_new(); new_tab_page( gtkabber, GTK_WIDGET(cd->socket) ); cd->xwin_id = gtk_socket_get_id( GTK_SOCKET( cd->socket ) ); gtkabber->toplevel.next_socket_id = cd->xwin_id; gtkabber->socket_list = g_list_append( gtkabber->socket_list, (gpointer)cd );}
开发者ID:ThomasAdam,项目名称:Gtkabber,代码行数:27,
示例5: g_strdupUzblInstance::UzblInstance(const char* u, const char* mainfifo, GtkNotebook* n, GtkTreeRowReference* r){ //id = ID++; url = g_strdup(u); title = g_strdup("..."); /*sprintf(fifopath, "/tmp/uzbl_fifo_%s", fifo); sprintf(sockpath, "/tmp/uzbl_socket_%s", fifo);*/ row = r; notebook = n; children = NULL; socket = GTK_SOCKET(gtk_socket_new()); //gtk_widget_set_can_focus(GTK_WIDGET(socket), false); gtk_notebook_append_page(notebook, GTK_WIDGET(socket), NULL); //gtk_widget_show_all(GTK_WIDGET(notebook)); gtk_widget_show(GTK_WIDGET(socket)); int rn = rand(); sprintf(name, "%d", rn &0x7FFFFFFF); char cmd[1024]; sprintf(cmd, "uzbl-browser tab %d %s %s /"%s/"", gtk_socket_get_id(socket), name, mainfifo, u); printf("%s/n", cmd); g_spawn_command_line_async(cmd, NULL);}
开发者ID:pawelz,项目名称:uzblstuff,代码行数:29,
示例6: printfnsresult nsPluginNativeWindowGtk2::CallSetWindow(nsCOMPtr<nsIPluginInstance> &aPluginInstance){ if(aPluginInstance) { nsresult rv; PRBool val = PR_FALSE; if(!mGtkSocket) { if (CanGetValueFromPlugin(aPluginInstance)) rv = aPluginInstance->GetValue ((nsPluginInstanceVariable)NPPVpluginNeedsXEmbed, &val); }#ifdef DEBUG printf("nsPluginNativeWindowGtk2: NPPVpluginNeedsXEmbed=%d/n", val);#endif if(val) { CreateXEmbedWindow(); } if(mGtkSocket) { // Make sure to resize and re-place the window if required SetAllocation(); window = (nsPluginPort *)gtk_socket_get_id(GTK_SOCKET(mGtkSocket)); }#ifdef DEBUG printf("nsPluginNativeWindowGtk2: call SetWindow with xid=%p/n", (void *)window);#endif aPluginInstance->SetWindow(this); } else if (mPluginInstance) mPluginInstance->SetWindow(nsnull); SetPluginInstance(aPluginInstance); return NS_OK;}
开发者ID:rn10950,项目名称:RetroZilla,代码行数:33,
示例7: m_pluginNetscapePluginX11::NetscapePluginX11(NetscapePlugin& plugin, Display* display, uint64_t windowID) : m_plugin(plugin) , m_pluginDisplay(display) , m_windowID(windowID){ // It seems flash needs the socket to be in the same process, // I guess it uses gdk_window_lookup(), so we create a new socket here // containing a plug with the UI process socket embedded. m_platformPluginWidget = gtk_plug_new(static_cast<Window>(windowID)); // Hide the GtkPlug on delete-event since we assume the widget is valid while the plugin is active. // platformDestroy() will be called anyway right after the delete-event. g_signal_connect(m_platformPluginWidget, "delete-event", G_CALLBACK(gtk_widget_hide_on_delete), nullptr); GtkWidget* socket = gtk_socket_new(); // Do not show the plug widget until the socket is connected. g_signal_connect_swapped(socket, "plug-added", G_CALLBACK(gtk_widget_show), m_platformPluginWidget); g_signal_connect(socket, "plug-removed", G_CALLBACK(socketPlugRemovedCallback), nullptr); gtk_container_add(GTK_CONTAINER(m_platformPluginWidget), socket); gtk_widget_show(socket); Display* hostDisplay = x11HostDisplay(); m_npWindowID = gtk_socket_get_id(GTK_SOCKET(socket)); GdkWindow* window = gtk_widget_get_window(socket); m_setWindowCallbackStruct.display = GDK_WINDOW_XDISPLAY(window); m_setWindowCallbackStruct.visual = GDK_VISUAL_XVISUAL(gdk_window_get_visual(window)); m_setWindowCallbackStruct.depth = gdk_visual_get_depth(gdk_window_get_visual(window)); m_setWindowCallbackStruct.colormap = XCreateColormap(hostDisplay, GDK_ROOT_WINDOW(), m_setWindowCallbackStruct.visual, AllocNone); XFlush(hostDisplay);}
开发者ID:aShinjiroUrata,项目名称:webkit,代码行数:31,
示例8: egg_tray_manager_handle_dock_requeststatic voidegg_tray_manager_handle_dock_request (EggTrayManager *manager, XClientMessageEvent *xevent){ GtkWidget *socket; Window *window; socket = gtk_socket_new (); /* We need to set the child window here * so that the client can call _get functions * in the signal handler */ window = g_new (Window, 1); *window = xevent->data.l[2]; g_object_set_data_full (G_OBJECT (socket), "egg-tray-child-window", window, g_free); g_signal_emit (manager, manager_signals[TRAY_ICON_ADDED], 0, socket); /* Add the socket only if it's been attached */ if (GTK_IS_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (socket)))) { g_signal_connect (socket, "plug_removed", G_CALLBACK (egg_tray_manager_plug_removed), manager); gtk_socket_add_id (GTK_SOCKET (socket), xevent->data.l[2]); g_hash_table_insert (manager->socket_table, GINT_TO_POINTER (xevent->data.l[2]), socket); } else gtk_widget_destroy (socket);}
开发者ID:BackupTheBerlios,项目名称:fbpanel-svn,代码行数:35,
示例9: gdk_window_lookupnsresult nsPluginNativeWindowGtk2::CreateXEmbedWindow() { if(!mGtkSocket) { GdkWindow *win = gdk_window_lookup((XID)window); mGtkSocket = gtk_socket_new(); //attach the socket to the container widget gtk_widget_set_parent_window(mGtkSocket, win); // Make sure to handle the plug_removed signal. If we don't the // socket will automatically be destroyed when the plug is // removed, which means we're destroying it more than once. // SYNTAX ERROR. g_signal_connect(mGtkSocket, "plug_removed", G_CALLBACK(plug_removed_cb), NULL); gpointer user_data = NULL; gdk_window_get_user_data(win, &user_data); GtkContainer *container = GTK_CONTAINER(user_data); gtk_container_add(container, mGtkSocket); gtk_widget_realize(mGtkSocket); // Resize before we show SetAllocation(); gtk_widget_show(mGtkSocket); gdk_flush(); window = (nsPluginPort *)gtk_socket_get_id(GTK_SOCKET(mGtkSocket)); } return NS_OK;}
开发者ID:rn10950,项目名称:RetroZilla,代码行数:33,
示例10: na_tray_manager_handle_dock_requeststatic voidna_tray_manager_handle_dock_request (NaTrayManager *manager, XClientMessageEvent *xevent){ Window icon_window = xevent->data.l[2]; GtkWidget *child; if (g_hash_table_lookup (manager->socket_table, GINT_TO_POINTER (icon_window))) { /* We already got this notification earlier, ignore this one */ return; } child = na_tray_child_new (manager->screen, icon_window); if (child == NULL) /* already gone or other error */ return; g_signal_emit (manager, manager_signals[TRAY_ICON_ADDED], 0, child); /* If the child wasn't attached, then destroy it */ if (!GTK_IS_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (child)))) { gtk_widget_destroy (child); return; } g_signal_connect (child, "plug_removed", G_CALLBACK (na_tray_manager_plug_removed), manager); gtk_socket_add_id (GTK_SOCKET (child), icon_window); if (!GTK_SOCKET (child)->plug_window) { /* Embedding failed, we won't get a plug-removed signal */ g_signal_emit (manager, manager_signals[TRAY_ICON_REMOVED], 0, child); gtk_widget_destroy (child); return; } g_hash_table_insert (manager->socket_table, GINT_TO_POINTER (icon_window), child); gtk_widget_show (child);}
开发者ID:MarkieMark,项目名称:gnome-shell,代码行数:46,
示例11: NS_ASSERTIONnsresult nsPluginNativeWindowGtk2::CreateXEmbedWindow() { NS_ASSERTION(!mSocketWidget,"Already created a socket widget!"); GdkWindow *parent_win = gdk_window_lookup((XID)window); mSocketWidget = gtk_socket_new(); //attach the socket to the container widget gtk_widget_set_parent_window(mSocketWidget, parent_win); // Make sure to handle the plug_removed signal. If we don't the // socket will automatically be destroyed when the plug is // removed, which means we're destroying it more than once. // SYNTAX ERROR. g_signal_connect(mSocketWidget, "plug_removed", G_CALLBACK(plug_removed_cb), NULL); g_signal_connect(mSocketWidget, "unrealize", G_CALLBACK(socket_unrealize_cb), NULL); g_signal_connect(mSocketWidget, "destroy", G_CALLBACK(gtk_widget_destroyed), &mSocketWidget); gpointer user_data = NULL; gdk_window_get_user_data(parent_win, &user_data); GtkContainer *container = GTK_CONTAINER(user_data); gtk_container_add(container, mSocketWidget); gtk_widget_realize(mSocketWidget); // The GtkSocket has a visible window, but the plugin's XEmbed plug will // cover this window. Normally GtkSockets let the X server paint their // background and this would happen immediately (before the plug is // created). Setting the background to None prevents the server from // painting this window, avoiding flicker. gdk_window_set_back_pixmap(mSocketWidget->window, NULL, FALSE); // Resize before we show SetAllocation(); gtk_widget_show(mSocketWidget); gdk_flush(); window = (void*)gtk_socket_get_id(GTK_SOCKET(mSocketWidget)); // Fill out the ws_info structure. // (The windowless case is done in nsObjectFrame.cpp.) GdkWindow *gdkWindow = gdk_window_lookup((XID)window); if(!gdkWindow) return NS_ERROR_FAILURE; mWsInfo.display = GDK_WINDOW_XDISPLAY(gdkWindow); mWsInfo.colormap = GDK_COLORMAP_XCOLORMAP(gdk_drawable_get_colormap(gdkWindow)); GdkVisual* gdkVisual = gdk_drawable_get_visual(gdkWindow); mWsInfo.visual = GDK_VISUAL_XVISUAL(gdkVisual); mWsInfo.depth = gdkVisual->depth; return NS_OK;}
开发者ID:Akin-Net,项目名称:mozilla-central,代码行数:58,
示例12: printfnsresult nsPluginNativeWindowGtk2::CallSetWindow(nsRefPtr<nsNPAPIPluginInstance> &aPluginInstance){ if (aPluginInstance) { if (type == NPWindowTypeWindow) { if (!mSocketWidget) { nsresult rv; PRBool needXEmbed = PR_FALSE; rv = aPluginInstance->GetValueFromPlugin(NPPVpluginNeedsXEmbed, &needXEmbed); // If the call returned an error code make sure we still use our default value. if (NS_FAILED(rv)) { needXEmbed = PR_FALSE; }#ifdef DEBUG printf("nsPluginNativeWindowGtk2: NPPVpluginNeedsXEmbed=%d/n", needXEmbed);#endif if (needXEmbed) { rv = CreateXEmbedWindow(); } else { rv = CreateXtWindow(); } if (NS_FAILED(rv)) { return NS_ERROR_FAILURE; } } if (!mSocketWidget) { return NS_ERROR_FAILURE; } // Make sure to resize and re-place the window if required. // Need to reset "window" each time as nsObjectFrame::DidReflow sets it // to the ancestor window. if (GTK_IS_XTBIN(mSocketWidget)) { gtk_xtbin_resize(mSocketWidget, width, height); // Point the NPWindow structures window to the actual X window window = (void*)GTK_XTBIN(mSocketWidget)->xtwindow; } else { // XEmbed SetAllocation(); window = (void*)gtk_socket_get_id(GTK_SOCKET(mSocketWidget)); }#ifdef DEBUG printf("nsPluginNativeWindowGtk2: call SetWindow with xid=%p/n", (void *)window);#endif } // NPWindowTypeWindow aPluginInstance->SetWindow(this); } else if (mPluginInstance) mPluginInstance->SetWindow(nsnull); SetPluginInstance(aPluginInstance); return NS_OK;}
开发者ID:Akin-Net,项目名称:mozilla-central,代码行数:57,
示例13: GTK_SOCKETvoid MCNativeLayerX11::doAttach(){ if (m_socket == NULL) { // Create a new GTK socket to deal with the XEMBED protocol GtkSocket *t_socket; t_socket = GTK_SOCKET(gtk_socket_new()); // Create a new GTK window to hold the socket MCRectangle t_rect; t_rect = m_object->getrect(); m_child_window = GTK_WINDOW(gtk_window_new(GTK_WINDOW_POPUP)); gtk_widget_set_parent_window(GTK_WIDGET(m_child_window), getStackGdkWindow()); gtk_widget_realize(GTK_WIDGET(m_child_window)); gdk_window_reparent(gtk_widget_get_window(GTK_WIDGET(m_child_window)), getStackGdkWindow(), t_rect.x, t_rect.y); // Add the socket to the window gtk_container_add(GTK_CONTAINER(m_child_window), GTK_WIDGET(t_socket)); // The socket needs to be realised before going any further or any // operations on it will fail. gtk_widget_realize(GTK_WIDGET(t_socket)); // Show the socket (we'll control visibility at the window level) gtk_widget_show(GTK_WIDGET(t_socket)); // Create an empty region to act as an input mask while in edit mode m_input_shape = gdk_region_new(); // Retain a reference to the socket m_socket = GTK_SOCKET(g_object_ref(G_OBJECT(t_socket))); } // Attach the X11 window to this socket if (gtk_socket_get_plug_window(m_socket) == NULL) gtk_socket_add_id(m_socket, m_widget_xid); //fprintf(stderr, "XID: %u/n", gtk_socket_get_id(m_socket)); // Act as if there were a re-layer to put the widget in the right place doRelayer(); doSetViewportGeometry(m_viewport_rect); doSetGeometry(m_rect); doSetVisible(ShouldShowLayer());}
开发者ID:soapdog,项目名称:livecode,代码行数:44,
示例14: printfnsresult nsPluginNativeWindowGtk2::CallSetWindow(nsCOMPtr<nsIPluginInstance> &aPluginInstance){ if(aPluginInstance) { if (type == nsPluginWindowType_Window) { nsresult rv; if(!mSocketWidget) { PRBool needXEmbed = PR_FALSE; if (CanGetValueFromPlugin(aPluginInstance)) { rv = aPluginInstance->GetValue ((nsPluginInstanceVariable)NPPVpluginNeedsXEmbed, &needXEmbed);#ifdef DEBUG printf("nsPluginNativeWindowGtk2: NPPVpluginNeedsXEmbed=%d/n", needXEmbed);#endif } nsresult rv; if(needXEmbed) {#ifdef MOZ_COMPOSITED_PLUGINS rv = CreateXCompositedWindow();#else rv = CreateXEmbedWindow();#endif } else { rv = CreateXtWindow(); } if(NS_FAILED(rv)) return NS_ERROR_FAILURE; } if(!mSocketWidget) return NS_ERROR_FAILURE; // Make sure to resize and re-place the window if required. // Need to reset "window" each time as nsObjectFrame::DidReflow sets it // to the ancestor window. if(GTK_IS_XTBIN(mSocketWidget)) { gtk_xtbin_resize(mSocketWidget, width, height); // Point the NPWindow structures window to the actual X window window = (nsPluginPort *)GTK_XTBIN(mSocketWidget)->xtwindow; } else { // XEmbed SetAllocation(); window = (nsPluginPort *)gtk_socket_get_id(GTK_SOCKET(mSocketWidget)); }#ifdef DEBUG printf("nsPluginNativeWindowGtk2: call SetWindow with xid=%p/n", (void *)window);#endif } // nsPluginWindowType_Window aPluginInstance->SetWindow(this); } else if (mPluginInstance) mPluginInstance->SetWindow(nsnull); SetPluginInstance(aPluginInstance); return NS_OK;}
开发者ID:amyvmiwei,项目名称:firefox,代码行数:56,
示例15: mainint main(int argc, char **argv){ GtkWidget *window, *button, *textview, *vbox; GtkWidget *socket, *plug, *socket_box; unsigned long kb_xid; gtk_init (&argc, &argv); install_signal_handlers(); kb_xid = launch_keyboard(); if (!kb_xid) { perror ("### 'matchbox-keyboard --xid', failed to return valid window ID. ### "); exit(-1); } /* Window */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size (GTK_WINDOW (window), 640, 480); gtk_container_set_border_width (GTK_CONTAINER (window), 10); g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (widget_destroy), NULL); /* Container and textview */ vbox = gtk_vbox_new(FALSE, 5); gtk_container_add (GTK_CONTAINER (window), vbox); textview = gtk_text_view_new(); gtk_box_pack_start (GTK_BOX(vbox), textview, TRUE, TRUE, 2); /* Socket ( XEMBED ) stuff */ socket_box = gtk_event_box_new (); gtk_widget_show (socket_box); socket = gtk_socket_new (); gtk_container_add (GTK_CONTAINER (socket_box), socket); gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET(socket_box), TRUE, TRUE, 0); gtk_socket_add_id(GTK_SOCKET(socket), kb_xid); /* FIXME: handle "plug-added" & "plug-removed" signals for socket */ gtk_widget_show_all (window); gtk_main (); return 0;}
开发者ID:bfabiszewski,项目名称:matchbox-keyboard,代码行数:56,
示例16: luaH_socket_newindexstatic gintluaH_socket_newindex(lua_State *L, luapdf_token_t token){ widget_t *w = luaH_checkwidget(L, 1); if (token == L_TK_ID) { gint id = luaL_checkint(L, 2); gtk_socket_add_id(GTK_SOCKET(w->widget), (GdkNativeWindow) id); } return 0;}
开发者ID:karottenreibe,项目名称:luapdf,代码行数:10,
示例17: luaH_socket_indexstatic gintluaH_socket_index(lua_State *L, luapdf_token_t token){ widget_t *w = luaH_checkwidget(L, 1); switch(token) { LUAPDF_WIDGET_INDEX_COMMON /* push integer methods */ PI_CASE(ID, (int) gtk_socket_get_id(GTK_SOCKET(w->widget))) /* push boolean methods */ PB_CASE(PLUGGED, gtk_socket_get_plug_window(GTK_SOCKET(w->widget))!=NULL) default: break; } return 0;}
开发者ID:karottenreibe,项目名称:luapdf,代码行数:19,
示例18: gtk_socket_finalizestatic voidgtk_socket_finalize (GObject *object){ GtkSocket *socket = GTK_SOCKET (object); GtkSocketPrivate *priv = socket->priv; g_object_unref (priv->accel_group); G_OBJECT_CLASS (gtk_socket_parent_class)->finalize (object);}
开发者ID:BYC,项目名称:gtk,代码行数:10,
示例19: add_menubarstatic void add_menubar(MacMenu* mmb, WnckWindow* mbarwin){ Window mbar = wnck_window_get_xid(mbarwin); GtkWidget* sck = gtk_socket_new(); g_signal_connect(sck, "destroy", G_CALLBACK(socket_destroyed), mmb); gtk_notebook_append_page(mmb->notebook, GTK_WIDGET(sck), NULL); gtk_socket_steal(GTK_SOCKET(sck), mbar); gtk_widget_show_all(sck); g_hash_table_insert(mmb->mbars_scks, (gpointer) mbar, sck);}
开发者ID:NovaCygni,项目名称:aur-mirror,代码行数:10,
示例20: gtk_socket_finalizestatic voidgtk_socket_finalize (GObject *object){ GtkSocket *socket = GTK_SOCKET (object); g_object_unref (socket->accel_group); socket->accel_group = NULL; G_OBJECT_CLASS (gtk_socket_parent_class)->finalize (object);}
开发者ID:batman52,项目名称:dingux-code,代码行数:10,
示例21: na_tray_child_force_redraw/* If we are faking transparency with a window-relative background, force a * redraw of the icon. This should be called if the background changes or if * the child is shifted with respect to the background. */voidna_tray_child_force_redraw (NaTrayChild *child){ GtkWidget *widget = GTK_WIDGET (child); if (gtk_widget_get_mapped (widget) && child->parent_relative_bg) {#if 1 /* Sending an ExposeEvent might cause redraw problems if the * icon is expecting the server to clear-to-background before * the redraw. It should be ok for GtkStatusIcon or EggTrayIcon. */ Display *xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (widget)); XEvent xev; GdkWindow *plug_window; GtkAllocation allocation; plug_window = gtk_socket_get_plug_window (GTK_SOCKET (child)); gtk_widget_get_allocation (widget, &allocation); xev.xexpose.type = Expose;#if GTK_CHECK_VERSION (3, 0, 0) xev.xexpose.window = GDK_WINDOW_XID (plug_window);#else xev.xexpose.window = GDK_WINDOW_XWINDOW (plug_window);#endif xev.xexpose.x = 0; xev.xexpose.y = 0; xev.xexpose.width = allocation.width; xev.xexpose.height = allocation.height; xev.xexpose.count = 0; gdk_error_trap_push (); XSendEvent (GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (widget)), xev.xexpose.window, False, ExposureMask, &xev); /* We have to sync to reliably catch errors from the XSendEvent(), * since that is asynchronous. */ XSync (xdisplay, False);#if GTK_CHECK_VERSION (3, 0, 0) gdk_error_trap_pop_ignored ();#else gdk_error_trap_pop ();#endif#else /* Hiding and showing is the safe way to do it, but can result in more * flickering. */ gdk_window_hide (widget->window); gdk_window_show (widget->window);#endif }}
开发者ID:ryandoyle,项目名称:mate-panel,代码行数:59,
示例22: add_local_active_childvoidadd_local_active_child (GtkWidget *window){ Socket *socket; socket = create_socket (); gtk_box_pack_start (GTK_BOX (box), socket->box, TRUE, TRUE, 0); gtk_widget_show (socket->box); create_child_plug (gtk_socket_get_id (GTK_SOCKET (socket->socket)), TRUE);}
开发者ID:BYC,项目名称:gtk,代码行数:11,
示例23: get_display_stringstatic char * get_display_string(visualizer_t * v) { char * ret; GdkDisplay * dpy; /* Get the display string */ gtk_widget_realize(v->normal_window.socket); gtk_widget_realize(v->fullscreen_window.socket); dpy = gdk_display_get_default(); // ret = bg_sprintf("%s:%08lx:%08lx", gdk_display_get_name(dpy), // GDK_WINDOW_XID(v->normal_window.window->window), // GDK_WINDOW_XID(v->fullscreen_window.window->window)); ret = bg_sprintf("%s:%08lx:%08lx", gdk_display_get_name(dpy), (long unsigned int)gtk_socket_get_id(GTK_SOCKET(v->normal_window.socket)), (long unsigned int)gtk_socket_get_id(GTK_SOCKET(v->fullscreen_window.socket))); return ret; }
开发者ID:Distrotech,项目名称:gmerlin,代码行数:21,
示例24: clip_GTK_SOCKETGETIDintclip_GTK_SOCKETGETID(ClipMachine * cm){ C_widget *csocket = _fetch_cw_arg(cm); CHECKCWID(csocket,GTK_IS_SOCKET); _clip_retni(cm, gtk_socket_get_id(GTK_SOCKET(csocket->widget))); return 0;err: return 1;}
开发者ID:amery,项目名称:clip-itk,代码行数:13,
示例25: add_local_passive_childvoidadd_local_passive_child (GtkWidget *window){ Socket *socket; Window xid; socket = create_socket (); gtk_box_pack_start (GTK_BOX (box), socket->box, TRUE, TRUE, 0); gtk_widget_show (socket->box); xid = create_child_plug (0, TRUE); gtk_socket_add_id (GTK_SOCKET (socket->socket), xid);}
开发者ID:BYC,项目名称:gtk,代码行数:13,
示例26: do_create_display_hook/* [gtk thread] */static gboolean do_create_display_hook(gpointer data){ const ARGS_CREATE *args = _al_gtk_lock_args(data); ALLEGRO_DISPLAY *display = (ALLEGRO_DISPLAY *)args->display; ALLEGRO_DISPLAY_XGLX *d = args->display; const int w = args->w; const int h = args->h; GtkWidget *window; GtkWidget *vbox; GtkWidget *socket; window = gtk_window_new(GTK_WINDOW_TOPLEVEL); d->gtk->gtkwindow = window; gtk_window_set_default_size(GTK_WINDOW(window), w, h); g_signal_connect(G_OBJECT(window), "delete-event", G_CALLBACK(xgtk_quit_callback), display); g_signal_connect(G_OBJECT(window), "configure-event", G_CALLBACK(xgtk_handle_configure_event), display); vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(window), vbox); socket = gtk_socket_new(); d->gtk->gtksocket = socket; gtk_box_pack_end(GTK_BOX(vbox), socket, TRUE, TRUE, 0); gtk_socket_add_id(GTK_SOCKET(socket), d->window); ALLEGRO_DEBUG("gtk_socket_add_id: window = %ld/n", d->window); gtk_window_set_title(GTK_WINDOW(window), args->title); gtk_widget_show_all(window); if (display->flags & ALLEGRO_RESIZABLE) { /* Allow socket widget to be resized smaller than initial size. */ gtk_widget_set_size_request(socket, -1, -1); gtk_window_set_resizable(GTK_WINDOW(window), true); } else { gtk_window_set_resizable(GTK_WINDOW(window), false); } if (display->flags & ALLEGRO_FULLSCREEN_WINDOW) { gtk_window_fullscreen(GTK_WINDOW(window)); } d->overridable_vt = &xgtk_override_vt; return _al_gtk_release_args(data);}
开发者ID:HaoDongGuo,项目名称:allegro5,代码行数:52,
示例27: schedule_send_client_event/* FIXME: should we schedule the event or not?static gbooleanschedule_send_client_event (gpointer data){ GdkEvent *event = (GdkEvent*) data; gdk_event_send_client_message (event, GDK_WINDOW_XID (event->client.window)); gdk_event_free (event); return FALSE;}*/static void on_size_alloc (AwnAppletProxy *proxy, GtkAllocation *alloc){ AwnAppletProxyPrivate *priv; GtkWidget *parent; GtkAllocation parent_alloc; GdkWindow *plug_win; g_return_if_fail (AWN_IS_APPLET_PROXY (proxy)); priv = proxy->priv; parent = gtk_widget_get_parent (GTK_WIDGET (proxy)); gtk_widget_get_allocation (parent, &parent_alloc); gint pos_x = alloc->x; gint pos_y = alloc->y; gint rel_x = pos_x - parent_alloc.x; gint rel_y = pos_y - parent_alloc.y; gint parent_w = parent_alloc.width; gint parent_h = parent_alloc.height; if (pos_x == priv->old_x && pos_y == priv->old_y && parent_w == priv->old_w && parent_h == priv->old_h) return; priv->old_x = pos_x; priv->old_y = pos_y; priv->old_w = parent_w; priv->old_h = parent_h; /* Only directly access the struct member if we have to. */ plug_win = gtk_socket_get_plug_window (GTK_SOCKET (proxy)); if (plug_win) { GdkAtom msg_type = gdk_atom_intern("_AWN_APPLET_POS_CHANGE", FALSE); GdkEvent *event = gdk_event_new (GDK_CLIENT_EVENT); event->client.window = g_object_ref (plug_win); event->client.data_format = 32; event->client.message_type = msg_type; // first two longs are our relative [x, y] event->client.data.l[0] = rel_x; event->client.data.l[1] = rel_y; // other two longs are our parent's [w, h] event->client.data.l[2] = parent_w; event->client.data.l[3] = parent_h; gdk_event_send_client_message (event, GDK_WINDOW_XID (plug_win)); gdk_event_free (event); /* g_idle_add (schedule_send_client_event, event); */ }}
开发者ID:Sprezzatech,项目名称:avant-window-navigator,代码行数:64,
示例28: cinnamon_tray_icon_constructedstatic voidcinnamon_tray_icon_constructed (GObject *object){ GdkWindow *icon_app_window; CinnamonTrayIcon *icon = CINNAMON_TRAY_ICON (object); CinnamonEmbeddedWindow *window; GdkDisplay *display; Window plug_xid; Atom _NET_WM_PID, type; int result, format; gulong nitems, bytes_after, *val = NULL; /* We do all this now rather than computing it on the fly later, * because Cinnamon may want to see their values from a * tray-icon-removed signal handler, at which point the plug has * already been removed from the socket. */ g_object_get (object, "window", &window, NULL); g_return_if_fail (window != NULL); icon->priv->socket = NA_TRAY_CHILD (gtk_bin_get_child (GTK_BIN (window))); g_object_unref (window); icon->priv->title = na_tray_child_get_title (icon->priv->socket); na_tray_child_get_wm_class (icon->priv->socket, NULL, &icon->priv->wm_class); icon_app_window = gtk_socket_get_plug_window (GTK_SOCKET (icon->priv->socket)); if (icon_app_window == NULL) { g_warning ("cinnamon tray: icon app window is gone"); return; } plug_xid = GDK_WINDOW_XID (icon_app_window); display = gtk_widget_get_display (GTK_WIDGET (icon->priv->socket)); gdk_error_trap_push (); _NET_WM_PID = gdk_x11_get_xatom_by_name_for_display (display, "_NET_WM_PID"); result = XGetWindowProperty (GDK_DISPLAY_XDISPLAY (display), plug_xid, _NET_WM_PID, 0, G_MAXLONG, False, XA_CARDINAL, &type, &format, &nitems, &bytes_after, (guchar **)&val); if (!gdk_error_trap_pop () && result == Success && type == XA_CARDINAL && nitems == 1) icon->priv->pid = *val; if (val) XFree (val);}
开发者ID:joequant,项目名称:Cinnamon,代码行数:50,
示例29: new_tab_pagevoidnew_tab_page(struct Gtkabber *gtkabber, GtkWidget *socket){ gtk_widget_show( socket ); gtk_notebook_append_page( GTK_NOTEBOOK(gtkabber->toplevel.notebook), socket, NULL ); gtk_notebook_set_current_page( GTK_NOTEBOOK(gtkabber->toplevel.notebook), -1 ); gtk_notebook_set_tab_reorderable (GTK_NOTEBOOK( gtkabber->toplevel.notebook), socket, TRUE); printf("%d/n", gtk_socket_get_id( GTK_SOCKET( socket ) ) ); fflush(stdout);}
开发者ID:ThomasAdam,项目名称:Gtkabber,代码行数:14,
注:本文中的GTK_SOCKET函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ GTK_SOURCE_BUFFER函数代码示例 C++ GTK_SIGNAL_FUNC函数代码示例 |