⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gdkwindow.c

📁 gtk是linux一款强大的夸平台的图形化开发工具
💻 C
📖 第 1 页 / 共 5 页
字号:
    return;    size_hints.flags = 0;    if (geom_mask & GDK_HINT_POS)    {      size_hints.flags |= PPosition;      /* We need to initialize the following obsolete fields because KWM        * apparently uses these fields if they are non-zero.       * #@#!#!$!.       */      size_hints.x = 0;      size_hints.y = 0;    }    if (geom_mask & GDK_HINT_MIN_SIZE)    {      size_hints.flags |= PMinSize;      size_hints.min_width = geometry->min_width;      size_hints.min_height = geometry->min_height;    }    if (geom_mask & GDK_HINT_MAX_SIZE)    {      size_hints.flags |= PMaxSize;      size_hints.max_width = MAX (geometry->max_width, 1);      size_hints.max_height = MAX (geometry->max_height, 1);    }    if (geom_mask & GDK_HINT_BASE_SIZE)    {      size_hints.flags |= PBaseSize;      size_hints.base_width = geometry->base_width;      size_hints.base_height = geometry->base_height;    }    if (geom_mask & GDK_HINT_RESIZE_INC)    {      size_hints.flags |= PResizeInc;      size_hints.width_inc = geometry->width_inc;      size_hints.height_inc = geometry->height_inc;    }    if (geom_mask & GDK_HINT_ASPECT)    {      size_hints.flags |= PAspect;      if (geometry->min_aspect <= 1)	{	  size_hints.min_aspect.x = 65536 * geometry->min_aspect;	  size_hints.min_aspect.y = 65536;	}      else	{	  size_hints.min_aspect.x = 65536;	  size_hints.min_aspect.y = 65536 / geometry->min_aspect;;	}      if (geometry->max_aspect <= 1)	{	  size_hints.max_aspect.x = 65536 * geometry->max_aspect;	  size_hints.max_aspect.y = 65536;	}      else	{	  size_hints.max_aspect.x = 65536;	  size_hints.max_aspect.y = 65536 / geometry->max_aspect;;	}    }  /* FIXME: Would it be better to delete this property of   *        geom_mask == 0? It would save space on the server   */  XSetWMNormalHints (private->xdisplay, private->xwindow, &size_hints);}voidgdk_window_set_title (GdkWindow   *window,		      const gchar *title){  GdkWindowPrivate *private;    g_return_if_fail (window != NULL);    private = (GdkWindowPrivate*) window;  if (!private->destroyed)    XmbSetWMProperties (private->xdisplay, private->xwindow,			title, title, NULL, 0, NULL, NULL, NULL);}void          gdk_window_set_role (GdkWindow   *window,		     const gchar *role){  GdkWindowPrivate *private;    g_return_if_fail (window != NULL);    private = (GdkWindowPrivate*) window;    if (role)    XChangeProperty (private->xdisplay, private->xwindow,		     gdk_atom_intern ("WM_WINDOW_ROLE", FALSE), XA_STRING,		     8, PropModeReplace, role, strlen (role));  else    XDeleteProperty (private->xdisplay, private->xwindow,		     gdk_atom_intern ("WM_WINDOW_ROLE", FALSE));}void          gdk_window_set_transient_for (GdkWindow *window, 			      GdkWindow *parent){  GdkWindowPrivate *private;  GdkWindowPrivate *parent_private;    g_return_if_fail (window != NULL);    private = (GdkWindowPrivate*) window;  parent_private = (GdkWindowPrivate*) parent;    if (!private->destroyed && !parent_private->destroyed)    XSetTransientForHint (private->xdisplay, 			  private->xwindow, parent_private->xwindow);}voidgdk_window_set_background (GdkWindow *window,			   GdkColor  *color){  GdkWindowPrivate *private;    g_return_if_fail (window != NULL);    private = (GdkWindowPrivate*) window;  if (!private->destroyed)    XSetWindowBackground (private->xdisplay, private->xwindow, color->pixel);}voidgdk_window_set_back_pixmap (GdkWindow *window,			    GdkPixmap *pixmap,			    gint       parent_relative){  GdkWindowPrivate *window_private;  GdkPixmapPrivate *pixmap_private;  Pixmap xpixmap;    g_return_if_fail (window != NULL);    window_private = (GdkWindowPrivate*) window;  pixmap_private = (GdkPixmapPrivate*) pixmap;    if (pixmap)    xpixmap = pixmap_private->xwindow;  else    xpixmap = None;    if (parent_relative)    xpixmap = ParentRelative;    if (!window_private->destroyed)    XSetWindowBackgroundPixmap (window_private->xdisplay, window_private->xwindow, xpixmap);}voidgdk_window_set_cursor (GdkWindow *window,		       GdkCursor *cursor){  GdkWindowPrivate *window_private;  GdkCursorPrivate *cursor_private;  Cursor xcursor;    g_return_if_fail (window != NULL);    window_private = (GdkWindowPrivate*) window;  cursor_private = (GdkCursorPrivate*) cursor;    if (!cursor)    xcursor = None;  else    xcursor = cursor_private->xcursor;    if (!window_private->destroyed)    XDefineCursor (window_private->xdisplay, window_private->xwindow, xcursor);}voidgdk_window_set_colormap (GdkWindow   *window,			 GdkColormap *colormap){  GdkWindowPrivate *window_private;  GdkColormapPrivate *colormap_private;    g_return_if_fail (window != NULL);  g_return_if_fail (colormap != NULL);    window_private = (GdkWindowPrivate*) window;  colormap_private = (GdkColormapPrivate*) colormap;    if (!window_private->destroyed)    {      XSetWindowColormap (window_private->xdisplay,			  window_private->xwindow,			  colormap_private->xcolormap);            if (window_private->colormap)	gdk_colormap_unref (window_private->colormap);      window_private->colormap = colormap;      gdk_colormap_ref (window_private->colormap);            if (window_private->window_type != GDK_WINDOW_TOPLEVEL)	gdk_window_add_colormap_windows (window);    }}voidgdk_window_get_user_data (GdkWindow *window,			  gpointer  *data){  g_return_if_fail (window != NULL);    *data = window->user_data;}voidgdk_window_get_geometry (GdkWindow *window,			 gint      *x,			 gint      *y,			 gint      *width,			 gint      *height,			 gint      *depth){  GdkWindowPrivate *window_private;  Window root;  gint tx;  gint ty;  guint twidth;  guint theight;  guint tborder_width;  guint tdepth;    if (!window)    window = (GdkWindow*) &gdk_root_parent;    window_private = (GdkWindowPrivate*) window;    if (!window_private->destroyed)    {      XGetGeometry (window_private->xdisplay, window_private->xwindow,		    &root, &tx, &ty, &twidth, &theight, &tborder_width, &tdepth);            if (x)	*x = tx;      if (y)	*y = ty;      if (width)	*width = twidth;      if (height)	*height = theight;      if (depth)	*depth = tdepth;    }}voidgdk_window_get_position (GdkWindow *window,			 gint      *x,			 gint      *y){  GdkWindowPrivate *window_private;    g_return_if_fail (window != NULL);    window_private = (GdkWindowPrivate*) window;    if (x)    *x = window_private->x;  if (y)    *y = window_private->y;}voidgdk_window_get_size (GdkWindow *window,		     gint       *width,		     gint       *height){  GdkWindowPrivate *window_private;    g_return_if_fail (window != NULL);    window_private = (GdkWindowPrivate*) window;    if (width)    *width = window_private->width;  if (height)    *height = window_private->height;}GdkVisual*gdk_window_get_visual (GdkWindow *window){  GdkWindowPrivate *window_private;  XWindowAttributes window_attributes;    g_return_val_if_fail (window != NULL, NULL);    window_private = (GdkWindowPrivate*) window;  /* Huh? ->parent is never set for a pixmap. We should just return   * null immeditately   */  while (window_private && (window_private->window_type == GDK_WINDOW_PIXMAP))    window_private = (GdkWindowPrivate*) window_private->parent;    if (window_private && !window_private->destroyed)    {      if (window_private->colormap == NULL)	{	  XGetWindowAttributes (window_private->xdisplay,				window_private->xwindow,				&window_attributes);	  return gdk_visual_lookup (window_attributes.visual);	}      else	return ((GdkColormapPrivate *)window_private->colormap)->visual;    }    return NULL;}GdkColormap*gdk_window_get_colormap (GdkWindow *window){  GdkWindowPrivate *window_private;  XWindowAttributes window_attributes;    g_return_val_if_fail (window != NULL, NULL);  window_private = (GdkWindowPrivate*) window;    g_return_val_if_fail (window_private->window_type != GDK_WINDOW_PIXMAP, NULL);  if (!window_private->destroyed)    {      if (window_private->colormap == NULL)	{	  XGetWindowAttributes (window_private->xdisplay,				window_private->xwindow,				&window_attributes);	  return gdk_colormap_lookup (window_attributes.colormap);	}      else	return window_private->colormap;    }    return NULL;}GdkWindowTypegdk_window_get_type (GdkWindow *window){  GdkWindowPrivate *window_private;    g_return_val_if_fail (window != NULL, (GdkWindowType) -1);    window_private = (GdkWindowPrivate*) window;  return window_private->window_type;}gintgdk_window_get_origin (GdkWindow *window,		       gint      *x,		       gint      *y){  GdkWindowPrivate *private;  gint return_val;  Window child;  gint tx = 0;  gint ty = 0;    g_return_val_if_fail (window != NULL, 0);    private = (GdkWindowPrivate*) window;    if (!private->destroyed)    {      return_val = XTranslateCoordinates (private->xdisplay,					  private->xwindow,					  gdk_root_window,					  0, 0, &tx, &ty,					  &child);          }  else    return_val = 0;    if (x)    *x = tx;  if (y)    *y = ty;    return return_val;}gbooleangdk_window_get_deskrelative_origin (GdkWindow *window,				    gint      *x,				    gint      *y){  GdkWindowPrivate *private;  gboolean return_val = FALSE;  gint num_children, format_return;  Window win, *child, parent, root;  gint tx = 0;  gint ty = 0;  Atom type_return;  static Atom atom = 0;  gulong number_return, bytes_after_return;  guchar *data_return;    g_return_val_if_fail (window != NULL, 0);    private = (GdkWindowPrivate*) window;    if (!private->destroyed)    {      if (!atom)	atom = XInternAtom (private->xdisplay, "ENLIGHTENMENT_DESKTOP", False);      win = private->xwindow;            while (XQueryTree (private->xdisplay, win, &root, &parent,			 &child, (unsigned int *)&num_children))	{	  if ((child) && (num_children > 0))	    XFree (child);	  	  if (!parent)	    break;	  else	    win = parent;	  	  if (win == root)	    break;	  	  data_return = NULL;	  XGetWindowProperty (private->xdisplay, win, atom, 0, 0,			      False, XA_CARDINAL, &type_return, &format_return,			      &number_return, &bytes_after_return, &data_return);	  if (type_return == XA_CARDINAL)	    {	      XFree (data_return);              break;	    }	}            return_val = XTranslateCoordinates (private->xdisplay,					  private->xwindow,					  win,					  0, 0, &tx, &ty,					  &root);      if (x)	*x = tx;      if (y)	*y = ty;    }      return return_val;}voidgdk_window_get_root_origin (GdkWindow *window,			    gint      *x,			    gint      *y){  GdkWindowPrivate *private;  Window xwindow;  Window xparent;  Window root;  Window *children;  unsigned int nchildren;    g_return_if_fail (window != NULL);    private = (GdkWindowPrivate*) window;  if (x)    *x = 0;  if (y)    *y = 0;  if (private->destroyed)    return;    while (private->parent && ((GdkWindowPrivate*) private->parent)->parent)    private = (GdkWindowPrivate*) private->parent;  if (private->destroyed)    return;    xparent = private->xwindow;  do    {      xwindow = xparent;      if (!XQueryTree (private->xdisplay, xwindow,		       &root, &xparent,		       &children, &nchildren))	return;            if (children)	XFree (children);    }  while (xparent != root);    if (xparent == root)    {      unsigned int ww, wh, wb, wd;      int wx, wy;            if (XGetGeometry (private->xdisplay, xwindow, &root, &wx, &wy, &ww, &wh, &wb, &wd))	{	  if (x)	    *x = wx;	  if (y)	    *y = wy;	}    }}GdkWindow*gdk_window_get_pointer (GdkWindow       *window,			gint            *x,			gint            *y,			GdkModifierType *mask){  GdkWindowPrivate *private;  GdkWindow *return_val;  Window root;  Window child;  int rootx, rooty;  int winx = 0;  int winy = 0;  unsigned int xmask = 0;    if (!window)    window = (GdkWindow*) &gdk_root_parent;    private = (GdkWindowPrivate*) window;    return_val = NULL;  if (!private->destroyed &&      XQueryPointer (private->xdisplay, private->xwindow, &root, &child,		     &rootx, &rooty, &winx, &winy, &xmask))    {      if (child)	return_val = gdk_window_lookup (child);    }  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -