您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ GTK_PLUG函数代码示例

51自学网 2021-06-01 20:58:45
  C++
这篇教程C++ GTK_PLUG函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中GTK_PLUG函数的典型用法代码示例。如果您正苦于以下问题:C++ GTK_PLUG函数的具体用法?C++ GTK_PLUG怎么用?C++ GTK_PLUG使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了GTK_PLUG函数的25个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: egg_tray_icon_send_message

guintegg_tray_icon_send_message (EggTrayIcon *icon,			    gint         timeout,			    const gchar *message,			    gint         len){  guint stamp;    g_return_val_if_fail (EGG_IS_TRAY_ICON (icon), 0);  g_return_val_if_fail (timeout >= 0, 0);  g_return_val_if_fail (message != NULL, 0);		       if (icon->manager_window == None)    return 0;  if (len < 0)    len = strlen (message);  stamp = icon->stamp++;    /* Get ready to send the message */  egg_tray_icon_send_manager_message (icon, SYSTEM_TRAY_BEGIN_MESSAGE,				      (Window)gtk_plug_get_id (GTK_PLUG (icon)),				      timeout, len, stamp);  /* Now to send the actual message */  gdk_error_trap_push ();  while (len > 0)    {      XClientMessageEvent ev;      Display *xdisplay;      xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon)));            ev.type = ClientMessage;      ev.window = (Window)gtk_plug_get_id (GTK_PLUG (icon));      ev.format = 8;      ev.message_type = XInternAtom (xdisplay,				     "_NET_SYSTEM_TRAY_MESSAGE_DATA", False);      if (len > 20)	{	  memcpy (&ev.data, message, 20);	  len -= 20;	  message += 20;	}      else	{	  memcpy (&ev.data, message, len);	  len = 0;	}      XSendEvent (xdisplay,		  icon->manager_window, False, StructureNotifyMask, (XEvent *)&ev);      XSync (xdisplay, False);    }  gdk_error_trap_pop ();  return stamp;}
开发者ID:czxxjtu,项目名称:wxPython-1,代码行数:59,


示例2: matecomponent_plug_button_event

static gbooleanmatecomponent_plug_button_event (GtkWidget      *widget,			  GdkEventButton *event){#if defined (GDK_WINDOWING_X11)	XEvent xevent;#endif	g_return_val_if_fail (MATECOMPONENT_IS_PLUG (widget), FALSE);	if (!MATECOMPONENT_PLUG (widget)->priv->forward_events || !GTK_WIDGET_TOPLEVEL (widget))		return FALSE;#if defined (GDK_WINDOWING_X11)	if (event->type == GDK_BUTTON_PRESS) {		xevent.xbutton.type = ButtonPress;		/* X does an automatic pointer grab on button press		 * if we have both button press and release events		 * selected.		 * We don't want to hog the pointer on our parent.		 */		gdk_display_pointer_ungrab			(gtk_widget_get_display (widget),			 GDK_CURRENT_TIME);	} else		xevent.xbutton.type = ButtonRelease;    	xevent.xbutton.display     = GDK_WINDOW_XDISPLAY (widget->window);	xevent.xbutton.window      = GDK_WINDOW_XWINDOW (GTK_PLUG (widget)->socket_window);	xevent.xbutton.root        = GDK_WINDOW_XWINDOW (gdk_screen_get_root_window							 (gdk_drawable_get_screen (widget->window)));	/*	 * FIXME: the following might cause	 *        big problems for non-GTK apps	 */	xevent.xbutton.x           = 0;	xevent.xbutton.y           = 0;	xevent.xbutton.x_root      = 0;	xevent.xbutton.y_root      = 0;	xevent.xbutton.state       = event->state;	xevent.xbutton.button      = event->button;	xevent.xbutton.same_screen = TRUE; /* FIXME ? */	gdk_error_trap_push ();	XSendEvent (GDK_WINDOW_XDISPLAY (widget->window),		    GDK_WINDOW_XWINDOW (GTK_PLUG (widget)->socket_window),		    False, NoEventMask, &xevent);	gdk_flush ();	gdk_error_trap_pop ();#elif defined (GDK_WINDOWING_WIN32)	/* FIXME: Need to do something? */#endif	return TRUE;}
开发者ID:TheCoffeMaker,项目名称:Mate-Desktop-Environment,代码行数:59,


示例3: plug_construct

static VALUEplug_construct(VALUE self, VALUE socket_id){#ifdef GDK_NATIVE_WINDOW_POINTER    gtk_plug_construct(GTK_PLUG(RVAL2GOBJ(self)), GUINT_TO_POINTER(NUM2ULONG(socket_id)));#else    gtk_plug_construct(GTK_PLUG(RVAL2GOBJ(self)), (guint32)NUM2UINT(socket_id));#endif    return self;}
开发者ID:benolee,项目名称:ruby-gnome2,代码行数:10,


示例4: egg_tray_icon_new_for_xscreen

EggTrayIcon *egg_tray_icon_new_for_xscreen (Screen *xscreen, const char *name){  EggTrayIcon *icon;  char buffer[256];  GdkWindow *root_window;  g_return_val_if_fail (xscreen != NULL, NULL);    icon = g_object_new (EGG_TYPE_TRAY_ICON, NULL);  gtk_window_set_title (GTK_WINDOW (icon), name);#if HAVE_GTK_MULTIHEAD  /* FIXME: this code does not compile, screen is undefined. Now try   * getting the GdkScreen from xscreen (:. Dunno how to solve this   * (there is prolly some easy way I cant think of right now)   */  gtk_plug_construct_for_display (GTK_PLUG (icon),				  gdk_screen_get_display (screen), 0);	#else  gtk_plug_construct (GTK_PLUG (icon), 0);#endif    gtk_widget_realize (GTK_WIDGET (icon));    /* Now see if there's a manager window around */  g_snprintf (buffer, sizeof (buffer),	      "_NET_SYSTEM_TRAY_S%d",	      XScreenNumberOfScreen (xscreen));    icon->selection_atom = XInternAtom (DisplayOfScreen (xscreen),				      buffer, False);    icon->manager_atom = XInternAtom (DisplayOfScreen (xscreen),				    "MANAGER", False);    icon->system_tray_opcode_atom = XInternAtom (DisplayOfScreen (xscreen),					       "_NET_SYSTEM_TRAY_OPCODE", False);  egg_tray_icon_update_manager_window (icon);#if HAVE_GTK_MULTIHEAD  root_window = gdk_screen_get_root_window (gtk_widget_get_screen (screen));#else  root_window = gdk_window_lookup (gdk_x11_get_default_root_xwindow ());#endif    /* Add a root window filter so that we get changes on MANAGER */  gdk_window_add_filter (root_window,			 egg_tray_icon_manager_filter, icon);		        return icon;}
开发者ID:voidptr,项目名称:xneur-option,代码行数:55,


示例5: totem_interface_set_transient_for

voidtotem_interface_set_transient_for (GtkWindow *window, GtkWindow *parent){#ifdef GDK_WINDOWING_X11	GdkDisplay *display;	display = gdk_display_get_default ();	if (GDK_IS_X11_DISPLAY (display) &&	    GTK_IS_PLUG (parent)) {		GdkWindow *toplevel;		gtk_widget_realize (GTK_WIDGET (window));		toplevel = totem_gtk_plug_get_toplevel (GTK_PLUG (parent));		if (toplevel != NULL) {			gdk_window_set_transient_for				(gtk_widget_get_window (GTK_WIDGET (window)), toplevel);			g_object_unref (toplevel);		}		return;	}#endif /* GDK_WINDOWING_X11 */	gtk_window_set_transient_for (GTK_WINDOW (window),				      GTK_WINDOW (parent));}
开发者ID:UIKit0,项目名称:totem,代码行数:26,


示例6: _calendar_embedded

static int _calendar_embedded(void){	GtkWidget * window;	GtkWidget * widget;	Calendar * calendar;	unsigned long id;	window = gtk_plug_new(0);	gtk_widget_realize(window);	g_signal_connect_swapped(window, "embedded", G_CALLBACK(				_embedded_on_embedded), window);	if((calendar = calendar_new()) == NULL)	{		gtk_widget_destroy(window);		return -1;	}	widget = calendar_get_widget(calendar);	gtk_container_add(GTK_CONTAINER(window), widget);	id = gtk_plug_get_id(GTK_PLUG(window));	printf("%lu/n", id);	fclose(stdout);	gtk_main();	calendar_delete(calendar);	gtk_widget_destroy(window);	return 0;}
开发者ID:DeforaOS,项目名称:Calendar,代码行数:26,


示例7: impl_MateComponent_Control_getWindowId

static CORBA_char *impl_MateComponent_Control_getWindowId (PortableServer_Servant servant,				 const CORBA_char      *cookie,				 CORBA_Environment     *ev){	guint32        x11_id;	MateComponentControl *control = MATECOMPONENT_CONTROL (		matecomponent_object_from_servant (servant));	GdkScreen *gdkscreen;	int        screen_num;	if (!control->priv->plug)		create_plug (control);	g_assert (control->priv->plug != NULL);	screen_num = parse_cookie (cookie);	if (screen_num != -1)		gdkscreen = gdk_display_get_screen (				gdk_display_get_default (), screen_num);	else		gdkscreen = gdk_screen_get_default ();	gtk_window_set_screen (GTK_WINDOW (control->priv->plug), gdkscreen);	gtk_widget_show (control->priv->plug);	x11_id = gtk_plug_get_id (GTK_PLUG (control->priv->plug));			dbgprintf ("plug id %u/n", x11_id);	return matecomponent_control_window_id_from_x11 (x11_id);}
开发者ID:TheCoffeMaker,项目名称:Mate-Desktop-Environment,代码行数:33,


示例8: egg_tray_icon_send_dock_request

static void egg_tray_icon_send_dock_request (EggTrayIcon *icon) {	egg_tray_icon_send_manager_message (icon,			SYSTEM_TRAY_REQUEST_DOCK,			icon->manager_window,			gtk_plug_get_id (GTK_PLUG (icon)),			0, 0);}
开发者ID:aufau,项目名称:xqf,代码行数:8,


示例9: realize_cb

static voidrealize_cb (GtkWidget *socket, gpointer user_data){    GtkWidget *plug, *w;    g_warning ("Realize");    plug = gtk_plug_new (0);    w = gtk_button_new_with_label ("Baa");    gtk_widget_show_all (w);    gtk_widget_show (plug);    gtk_container_add (GTK_CONTAINER (plug), w);    GTK_PLUG (plug)->socket_window = GTK_WIDGET (socket)->window;    gtk_socket_add_id (GTK_SOCKET (socket),                       gtk_plug_get_id (GTK_PLUG (plug)));    gdk_window_show (GTK_WIDGET (plug)->window);}
开发者ID:TheCoffeMaker,项目名称:Mate-Desktop-Environment,代码行数:17,


示例10: matecomponent_plug_construct_full

/** * matecomponent_plug_construct_full: * @plug: The #MateComponentPlug. * @socket_id: the XID of the socket's window. * * Finish the creation of a #MateComponentPlug widget. This function * will generally only be used by classes deriving * from #MateComponentPlug. */voidmatecomponent_plug_construct_full (MateComponentPlug *plug,			    GdkDisplay *display,			    guint32     socket_id){	gtk_plug_construct_for_display		(GTK_PLUG (plug), display, socket_id);}
开发者ID:TheCoffeMaker,项目名称:Mate-Desktop-Environment,代码行数:17,


示例11: plug_get_id

static VALUEplug_get_id(VALUE self){    GdkNativeWindow id = gtk_plug_get_id(GTK_PLUG(RVAL2GOBJ(self)));#ifdef GDK_NATIVE_WINDOW_POINTER    return UINT2NUM(GPOINTER_TO_UINT(id));#else    return UINT2NUM(id);#endif}
开发者ID:benolee,项目名称:ruby-gnome2,代码行数:10,


示例12: egg_tray_icon_cancel_message

void egg_tray_icon_cancel_message (EggTrayIcon *icon,			      guint        id){  g_return_if_fail (EGG_IS_TRAY_ICON (icon));  g_return_if_fail (id > 0);    egg_tray_icon_send_manager_message (icon, SYSTEM_TRAY_CANCEL_MESSAGE,				      (Window)gtk_plug_get_id (GTK_PLUG (icon)),				      id, 0, 0);}
开发者ID:BackupTheBerlios,项目名称:avidemux-svn,代码行数:10,


示例13: ASSERT

void NetscapePluginX11::visibilityDidChange(){    ASSERT(m_plugin.isWindowed());    uint64_t windowID = 0;#if PLATFORM(GTK)    windowID = static_cast<uint64_t>(GDK_WINDOW_XID(gtk_plug_get_socket_window(GTK_PLUG(m_platformPluginWidget))));#endif    m_plugin.controller()->windowedPluginVisibilityDidChange(m_plugin.isVisible(), windowID);    m_plugin.controller()->windowedPluginGeometryDidChange(m_plugin.frameRectInWindowCoordinates(), m_plugin.clipRect(), windowID);}
开发者ID:aShinjiroUrata,项目名称:webkit,代码行数:10,


示例14: bacon_video_widget_gst_get_toplevel

static Windowbacon_video_widget_gst_get_toplevel (GtkWidget *widget){	GtkWidget *parent;	parent = gtk_widget_get_toplevel (GTK_WIDGET (widget));	if (parent == NULL)		return 0;	if (GTK_IS_PLUG (parent))		return bacon_video_widget_gtk_plug_get_toplevel (GTK_PLUG (parent));	else		return GDK_WINDOW_XID(gtk_widget_get_window (parent));}
开发者ID:Avinashkumarsharma,项目名称:totemplayer,代码行数:14,


示例15: egg_tray_icon_new_for_xscreen

EggTrayIcon *egg_tray_icon_new_for_xscreen (Screen *xscreen, const char *name){  EggTrayIcon *icon;  char buffer[256];  GdkWindow *root_window;  GdkDisplay *display;  GdkScreen *screen;    g_return_val_if_fail (xscreen != NULL, NULL);    icon = g_object_new (EGG_TYPE_TRAY_ICON, NULL);  gtk_window_set_title (GTK_WINDOW (icon), name);  display = gdk_x11_lookup_xdisplay (DisplayOfScreen (xscreen));  screen = gdk_display_get_screen (display, XScreenNumberOfScreen (xscreen));    gtk_plug_construct_for_display (GTK_PLUG (icon),				  display, 0);  gtk_window_set_screen (GTK_WINDOW (icon), screen);	     gtk_widget_realize (GTK_WIDGET (icon));  /* Now see if there's a manager window around */  g_snprintf (buffer, sizeof (buffer),	      "_NET_SYSTEM_TRAY_S%d",	      XScreenNumberOfScreen (xscreen));    icon->selection_atom = XInternAtom (DisplayOfScreen (xscreen),				      buffer, False);    icon->manager_atom = XInternAtom (DisplayOfScreen (xscreen),				    "MANAGER", False);    icon->system_tray_opcode_atom = XInternAtom (DisplayOfScreen (xscreen),					       "_NET_SYSTEM_TRAY_OPCODE", False);  egg_tray_icon_update_manager_window (icon);  root_window = gdk_screen_get_root_window (gtk_widget_get_screen (GTK_WIDGET (icon)));    /* Add a root window filter so that we get changes on MANAGER */  gdk_window_add_filter (root_window,			 egg_tray_icon_manager_filter, icon);		        return icon;}
开发者ID:czxxjtu,项目名称:wxPython-1,代码行数:48,


示例16: gdk_threads_enter

JNIEXPORT void JNICALLJava_gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer_construct  (JNIEnv *env, jobject obj, jlong socket_id){  void *ptr;  gdk_threads_enter ();  ptr = gtkpeer_get_widget (env, obj);  if (GTK_WIDGET_REALIZED (GTK_WIDGET (ptr)))    g_printerr ("ERROR: GtkPlug is already realized/n");  gtk_plug_construct (GTK_PLUG (ptr), (GdkNativeWindow) socket_id);  gdk_threads_leave ();}
开发者ID:0day-ci,项目名称:gcc,代码行数:17,


示例17: lmplayer_interface_set_transient_for

voidlmplayer_interface_set_transient_for (GtkWindow *window, GtkWindow *parent){	if (GTK_IS_PLUG (parent)) {		GdkWindow *toplevel;		gtk_widget_realize (GTK_WIDGET (window));		toplevel = lmplayer_gtk_plug_get_toplevel (GTK_PLUG (parent));		if (toplevel != NULL) {			gdk_window_set_transient_for				(GTK_WIDGET (window)->window, toplevel);			g_object_unref (toplevel);		}	} else {		gtk_window_set_transient_for (GTK_WINDOW (window),				GTK_WINDOW (parent));	}}
开发者ID:kelvenxu,项目名称:littlepudding,代码行数:18,


示例18: PLATFORM

void NetscapePluginX11::geometryDidChange(){    if (m_plugin.isWindowed()) {        uint64_t windowID = 0;#if PLATFORM(GTK)        windowID = static_cast<uint64_t>(GDK_WINDOW_XID(gtk_plug_get_socket_window(GTK_PLUG(m_platformPluginWidget))));#endif        m_plugin.controller()->windowedPluginGeometryDidChange(m_plugin.frameRectInWindowCoordinates(), m_plugin.clipRect(), windowID);        return;    }    m_drawable.reset();    if (m_plugin.size().isEmpty())        return;    m_drawable = XCreatePixmap(x11HostDisplay(), rootWindowID(), m_plugin.size().width(), m_plugin.size().height(), displayDepth());    XSync(x11HostDisplay(), false); // Make sure that the server knows about the Drawable.}
开发者ID:aShinjiroUrata,项目名称:webkit,代码行数:18,


示例19: egg_tray_icon_new

EggTrayIcon * egg_tray_icon_new (const char *name, GdkPixbuf *pix) {	EggTrayIcon *icon;	char buffer[256];	GdkWindow *root_window;	Screen *xscreen=DefaultScreenOfDisplay (GDK_DISPLAY());	g_return_val_if_fail  (pix!= NULL, NULL);	icon = g_object_new (EGG_TYPE_TRAY_ICON, NULL);	gtk_window_set_title (GTK_WINDOW (icon), name);	gtk_plug_construct (GTK_PLUG (icon), 0);	gtk_widget_realize (GTK_WIDGET (icon));	icon->ready=FALSE;	icon->default_pix=pix;	/* Now see if there's a manager window around */	g_snprintf (buffer, sizeof (buffer), "_NET_SYSTEM_TRAY_S%d",			XScreenNumberOfScreen (xscreen));	icon->selection_atom = XInternAtom (DisplayOfScreen (xscreen),			buffer, False);	icon->manager_atom = XInternAtom (DisplayOfScreen (xscreen),			"MANAGER", False);	icon->system_tray_opcode_atom = XInternAtom (DisplayOfScreen (xscreen),			"_NET_SYSTEM_TRAY_OPCODE", False);	gtk_window_present (GTK_WINDOW (icon));	egg_tray_icon_update_manager_window (icon);	root_window = gdk_window_lookup (gdk_x11_get_default_root_xwindow ());	/* Add a root window filter so that we get changes on MANAGER */	gdk_window_add_filter (root_window, egg_tray_icon_manager_filter, icon);	return icon;}
开发者ID:aufau,项目名称:xqf,代码行数:39,


示例20: tray_widget_send_dock_request

static void tray_widget_send_dock_request(struct _tray_widget_icon *widget_icon){	XClientMessageEvent ev;	ev.type = ClientMessage;	ev.window =  widget_icon->manager_window;	ev.message_type = widget_icon->system_tray_opcode_atom;	ev.format = 32;	ev.data.l[0] = gdk_x11_get_server_time(GTK_WIDGET(widget_icon)->window);	ev.data.l[1] = 0;	ev.data.l[2] = gtk_plug_get_id(GTK_PLUG(widget_icon));	ev.data.l[3] = 0;	ev.data.l[4] = 0;	Display *display = GDK_DISPLAY_XDISPLAY(gtk_widget_get_display(GTK_WIDGET(widget_icon)));	gdk_error_trap_push();	XSendEvent(display, widget_icon->manager_window, False, NoEventMask, (XEvent *) &ev);	XSync(display, False);	gdk_error_trap_pop();}
开发者ID:voidptr,项目名称:xneur-option,代码行数:22,


示例21: panel_window_get_xid

/* panel_window_get_xid */uint32_t panel_window_get_xid(PanelWindow * panel){	return (panel->position == PANEL_WINDOW_POSITION_EMBEDDED)		? gtk_plug_get_id(GTK_PLUG(panel->window)) : 0;}
开发者ID:DeforaOS,项目名称:Panel,代码行数:6,


示例22: create_plug

//.........这里部分代码省略.........    vbox = gtk_vbox_new (FALSE, 0);#else    vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);#endif    gtk_container_add (GTK_CONTAINER (win), vbox);    /* add dialog text */    if (options.data.dialog_text)    {        gchar *buf = g_strcompress (options.data.dialog_text);        text = gtk_label_new (NULL);        if (!options.data.no_markup)            gtk_label_set_markup (GTK_LABEL (text), buf);        else            gtk_label_set_text (GTK_LABEL (text), buf);        gtk_widget_set_name (text, "yad-dialog-label");        gtk_label_set_line_wrap (GTK_LABEL (text), TRUE);        gtk_label_set_selectable (GTK_LABEL (text), options.data.selectable_labels);        gtk_label_set_justify (GTK_LABEL (text), options.data.text_align);        switch (options.data.text_align)        {        case GTK_JUSTIFY_LEFT:        case GTK_JUSTIFY_FILL:            gtk_misc_set_alignment (GTK_MISC (text), 0.0, 0.5);            break;        case GTK_JUSTIFY_CENTER:            gtk_misc_set_alignment (GTK_MISC (text), 0.5, 0.5);            break;        case GTK_JUSTIFY_RIGHT:            gtk_misc_set_alignment (GTK_MISC (text), 1.0, 0.5);            break;        }        gtk_box_pack_start (GTK_BOX (vbox), text, FALSE, FALSE, 2);#if !GTK_CHECK_VERSION(3,0,0)        g_signal_connect (G_OBJECT (text), "size-allocate", G_CALLBACK (text_size_allocate_cb), NULL);#endif        g_free (buf);    }    /* add main widget */    switch (options.mode)    {    case YAD_MODE_CALENDAR:        main_widget = calendar_create_widget (win);        break;    case YAD_MODE_COLOR:        main_widget = color_create_widget (win);        break;    case YAD_MODE_ENTRY:        main_widget = entry_create_widget (win);        break;    case YAD_MODE_FILE:        main_widget = file_create_widget (win);        break;    case YAD_MODE_FONT:        main_widget = font_create_widget (win);        break;    case YAD_MODE_FORM:        main_widget = form_create_widget (win);        break;#ifdef HAVE_HTML    case YAD_MODE_HTML:        main_widget = html_create_widget (win);        break;#endif    case YAD_MODE_ICONS:        main_widget = icons_create_widget (win);        break;    case YAD_MODE_LIST:        main_widget = list_create_widget (win);        break;    case YAD_MODE_MULTI_PROGRESS:        main_widget = multi_progress_create_widget (win);        break;    case YAD_MODE_PROGRESS:        main_widget = progress_create_widget (win);        break;    case YAD_MODE_SCALE:        main_widget = scale_create_widget (win);        break;    case YAD_MODE_TEXTINFO:        main_widget = text_create_widget (win);        break;    default:        ;    }    if (main_widget)        gtk_box_pack_start (GTK_BOX (vbox), main_widget, TRUE, TRUE, 2);    gtk_widget_show_all (win);    /* add plug data */    tabs[options.tabnum].pid = getpid ();    tabs[options.tabnum].xid = gtk_plug_get_id (GTK_PLUG (win));    /* FIXME: may be a race here */    tabs[0].xid++;    shmdt (tabs);}
开发者ID:kba,项目名称:yad-dialog,代码行数:101,


示例23: client_new

WebKitWebView *client_new(const gchar *uri){    struct Client *c;    WebKitWebContext *wc;    gchar *f;    if (uri != NULL && cooperative_instances && !cooperative_alone)    {        write(cooperative_pipe_fp, uri, strlen(uri));        write(cooperative_pipe_fp, "/n", 1);        return NULL;    }    c = malloc(sizeof(struct Client));    if (!c)    {        fprintf(stderr, __NAME__": fatal: malloc failed/n");        exit(EXIT_FAILURE);    }    c->hover_uri = NULL;    c->win = NULL;    if (embed != 0)    {        c->win = gtk_plug_new(embed);        if (!gtk_plug_get_embedded(GTK_PLUG(c->win)))        {            fprintf(stderr, __NAME__": Can't plug-in to XID %ld./n", embed);            gtk_widget_destroy(c->win);            c->win = NULL;            embed = 0;        }    }    if (c->win == NULL)    {        c->win = gtk_window_new(GTK_WINDOW_TOPLEVEL);        gtk_window_set_wmclass(GTK_WINDOW(c->win), __NAME__, __NAME_CAPITALIZED__);    }    gtk_window_set_default_size(GTK_WINDOW(c->win), 800, 600);    g_signal_connect(G_OBJECT(c->win), "destroy", G_CALLBACK(client_destroy), c);    gtk_window_set_title(GTK_WINDOW(c->win), __NAME__);    c->web_view = webkit_web_view_new();    wc = webkit_web_view_get_context(WEBKIT_WEB_VIEW(c->web_view));    webkit_web_view_set_zoom_level(WEBKIT_WEB_VIEW(c->web_view), global_zoom);    g_signal_connect(G_OBJECT(c->web_view), "notify::title",                     G_CALLBACK(changed_title), c);    g_signal_connect(G_OBJECT(c->web_view), "notify::uri",                     G_CALLBACK(changed_uri), c);    g_signal_connect(G_OBJECT(c->web_view), "notify::estimated-load-progress",                     G_CALLBACK(changed_load_progress), c);    g_signal_connect(G_OBJECT(c->web_view), "create",                     G_CALLBACK(client_new_request), NULL);    g_signal_connect(G_OBJECT(c->web_view), "close",                     G_CALLBACK(client_destroy_request), c);    g_signal_connect(G_OBJECT(c->web_view), "decide-policy",                     G_CALLBACK(decide_policy), NULL);    g_signal_connect(G_OBJECT(c->web_view), "key-press-event",                     G_CALLBACK(key_web_view), c);    g_signal_connect(G_OBJECT(c->web_view), "button-press-event",                     G_CALLBACK(key_web_view), c);    g_signal_connect(G_OBJECT(c->web_view), "scroll-event",                     G_CALLBACK(key_web_view), c);    g_signal_connect(G_OBJECT(c->web_view), "mouse-target-changed",                     G_CALLBACK(hover_web_view), c);    g_signal_connect(G_OBJECT(c->web_view), "web-process-crashed",                     G_CALLBACK(crashed_web_view), c);    if (!initial_wc_setup_done)    {        if (accepted_language[0] != NULL)            webkit_web_context_set_preferred_languages(wc, accepted_language);        g_signal_connect(G_OBJECT(wc), "download-started",                         G_CALLBACK(download_handle_start), NULL);        trust_user_certs(wc);        initial_wc_setup_done = TRUE;    }    if (user_agent != NULL)        g_object_set(G_OBJECT(webkit_web_view_get_settings(WEBKIT_WEB_VIEW(c->web_view))),                     "user-agent", user_agent, NULL);    c->location = gtk_entry_new();    g_signal_connect(G_OBJECT(c->location), "key-press-event",                     G_CALLBACK(key_location), c);    /* XXX Progress bars don't work/look as intended anymore. Level bars     * are a dirty workaround (kind of). */    c->progress = gtk_level_bar_new();    gtk_level_bar_set_value(GTK_LEVEL_BAR(c->progress), 0);    gtk_widget_set_size_request(c->progress, 100, -1);//.........这里部分代码省略.........
开发者ID:kublaj,项目名称:lariza,代码行数:101,


示例24: download_new

//.........这里部分代码省略.........    /* window */    if(prefs->embedded == 0)    {        download->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);        snprintf(buf, sizeof(buf), "%s %s", _("Download"),                 download->url);#if GTK_CHECK_VERSION(2, 6, 0)        gtk_window_set_icon_name(GTK_WINDOW(download->window),                                 "stock_download");#endif        gtk_window_set_resizable(GTK_WINDOW(download->window), FALSE);        gtk_window_set_title(GTK_WINDOW(download->window), buf);        g_signal_connect_swapped(download->window, "delete-event",                                 G_CALLBACK(_download_on_closex), download);    }    else    {        download->window = gtk_plug_new(0);        g_signal_connect_swapped(download->window, "embedded",                                 G_CALLBACK(_download_on_embedded), download);    }#if GTK_CHECK_VERSION(3, 0, 0)    vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 2);#else    vbox = gtk_vbox_new(FALSE, 2);#endif    bold = pango_font_description_new();    pango_font_description_set_weight(bold, PANGO_WEIGHT_BOLD);    left = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);    /* address */#if GTK_CHECK_VERSION(3, 0, 0)    hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 4);#else    hbox = gtk_hbox_new(FALSE, 4);#endif    widget = gtk_label_new(_("Address: "));#if GTK_CHECK_VERSION(3, 0, 0)    gtk_widget_override_font(widget, bold);    g_object_set(widget, "halign", GTK_ALIGN_START, NULL);#else    gtk_widget_modify_font(widget, bold);    gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5);#endif    gtk_size_group_add_widget(left, widget);    gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0);    download->address = gtk_entry_new();    gtk_entry_set_text(GTK_ENTRY(download->address), download->url);    gtk_editable_set_editable(GTK_EDITABLE(download->address), FALSE);    gtk_box_pack_start(GTK_BOX(hbox), download->address, TRUE, TRUE, 0);    gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);    /* labels */    _download_label(vbox, bold, left, _("File: "), &download->filename,                    download->prefs.output);    _download_label(vbox, bold, left, _("Status: "), &download->status,                    _("Resolving..."));    _download_label(vbox, bold, left, _("Received: "), &download->received,                    _("0.0 kB"));    _download_label(vbox, bold, left, _("Remaining: "),                    &download->remaining, _("Unknown"));    /* progress bar */    download->progress = gtk_progress_bar_new();    gtk_box_pack_start(GTK_BOX(vbox), download->progress, FALSE, FALSE, 0);    /* checkbox */    download->check = gtk_check_button_new_with_label(                          _("Close window when the download is complete"));    gtk_box_pack_start(GTK_BOX(vbox), download->check, FALSE, FALSE, 0);    /* button */#if GTK_CHECK_VERSION(3, 0, 0)    hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 4);#else    hbox = gtk_hbox_new(FALSE, 4);#endif    download->cancel = gtk_button_new_from_stock(GTK_STOCK_CANCEL);    g_signal_connect_swapped(download->cancel, "clicked", G_CALLBACK(                                 _download_on_cancel), download);    gtk_box_pack_end(GTK_BOX(hbox), download->cancel, FALSE, TRUE, 0);    download->browse = gtk_button_new_with_mnemonic("_Open folder");    gtk_widget_set_no_show_all(download->browse, TRUE);    widget = gtk_image_new_from_stock(GTK_STOCK_OPEN, GTK_ICON_SIZE_BUTTON);    gtk_button_set_image(GTK_BUTTON(download->browse), widget);    g_signal_connect_swapped(download->browse, "clicked", G_CALLBACK(                                 _download_on_browse), download);    gtk_box_pack_end(GTK_BOX(hbox), download->browse, FALSE, TRUE, 0);    gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);    gtk_container_set_border_width(GTK_CONTAINER(download->window), 4);    gtk_container_add(GTK_CONTAINER(download->window), vbox);    download->timeout = g_idle_add(_download_on_idle, download);    _download_refresh(download);    gtk_widget_show_all(vbox);    if(prefs->embedded == 0)        gtk_widget_show(download->window);    else    {        id = gtk_plug_get_id(GTK_PLUG(download->window));        printf("%lu/n", id);        fclose(stdout);    }    _download_cnt++;    return download;}
开发者ID:DeforaOS,项目名称:Surfer,代码行数:101,


示例25: main

int main(int argc, char **argv){    GError     *error = NULL;    unsigned long wid=0;    gtk_init( &argc, &argv );    int i;    for(i=0; i<argc; i++) {        if(strcmp("-h", argv[i])==0 || strcmp("--help", argv[i])==0) {            printHelp();            return 0;        }        else if(strcmp("-V", argv[i])==0 || strcmp("--version", argv[i])==0) {            printf("gtk_preview version 1.0/n");            return 0;        } else if(argc>1)            sscanf(argv[1], "%ld", &wid);    }    const char* ui_file = DATA_DIR "/preview.ui";     GtkBuilder *builder = gtk_builder_new();    if( ! gtk_builder_add_from_file( builder, ui_file, &error ) ) {        g_warning( "%s", error->message );        g_free( error );        return 1;    }        GtkWidget *previewUI = GTK_WIDGET( gtk_builder_get_object( builder, "frame1" ) );    gtk_builder_connect_signals( builder, NULL );        /* a plug when embedded, a window when a window */    GtkWidget* window;        if(wid==0) {        window = gtk_dialog_new();        gtk_container_add (GTK_CONTAINER (GTK_DIALOG (window)->vbox), previewUI);        g_signal_connect(window, "response", G_CALLBACK(on_dlg_response), NULL);    } else {        window = gtk_plug_new(wid);        gtk_container_add (GTK_CONTAINER (window), previewUI);    }        GdkColor black = {0, 0, 0, 0};    gtk_widget_modify_bg(previewUI, GTK_STATE_NORMAL, &black);        g_signal_connect (window, "destroy",                    G_CALLBACK (gtk_widget_destroyed),                    &window);        gtk_widget_show_all ( window );    g_object_unref( G_OBJECT( builder ) );        if(wid)        fprintf(stderr, "--- is embedded: %d/n", gtk_plug_get_embedded(GTK_PLUG(window)));        gchar** files = gtk_rc_get_default_files();    GFile* file = g_file_new_for_path(files[0]);    GFileMonitor* monitor = g_file_monitor_file(file, G_FILE_MONITOR_NONE, NULL, NULL);    g_signal_connect (monitor, "changed",                    G_CALLBACK (reloadstyle), NULL);        gtk_main();        return 0;}
开发者ID:KDE,项目名称:kde-gtk-config,代码行数:64,



注:本文中的GTK_PLUG函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ GTK_PROGRESS_BAR函数代码示例
C++ GTK_PIZZA函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。