


XAllocWMHints(3X11)					  XAllocWMHints(3X11)
X11R5									X11R5



NAME
  XAllocWMHints, XSetWMHints, XGetWMHints, XWMHints - allocate window manager
  hints	structure and set or read a window's WM_HINTS property

SYNTAX
  XWMHints *XAllocWMHints()

  XSetWMHints(_d_i_s_p_l_a_y, _w, _w_m_h_i_n_t_s)
	Display	*_d_i_s_p_l_a_y;
	Window _w;
	XWMHints *_w_m_h_i_n_t_s;


  XWMHints *XGetWMHints(_d_i_s_p_l_a_y, _w)
	Display	*_d_i_s_p_l_a_y;
	Window _w;

ARGUMENTS

  _d_i_s_p_l_a_y   Specifies the connection to	the X server.

  _w	    Specifies the window.

  _w_m_h_i_n_t_s   Specifies the _X_W_M_H_i_n_t_s structure to	be used.

DESCRIPTION
  The _X_A_l_l_o_c_W_M_H_i_n_t_s function allocates and returns a pointer to	a _X_W_M_H_i_n_t_s
  structure.  Note that	all fields in the _X_W_M_H_i_n_t_s structure are initially
  set to zero.	If insufficient	memory is available, _X_A_l_l_o_c_W_M_H_i_n_t_s returns
  NULL.	 To free the memory allocated to this structure, use _X_F_r_e_e.

  The _X_S_e_t_W_M_H_i_n_t_s function sets	the window manager hints that include icon
  information and location, the	initial	state of the window, and whether the
  application relies on	the window manager to get keyboard input.

  _X_S_e_t_W_M_H_i_n_t_s can generate _B_a_d_A_l_l_o_c and	_B_a_d_W_i_n_d_o_w errors.

  The _X_G_e_t_W_M_H_i_n_t_s function reads the window manager hints and returns NULL if
  no WM_HINTS property was set on the window or	returns	a pointer to a
  _X_W_M_H_i_n_t_s structure if	it succeeds.  When finished with the data, free	the
  space	used for it by calling _X_F_r_e_e.

  _X_G_e_t_W_M_H_i_n_t_s can generate a _B_a_d_W_i_n_d_o_w error.

PROPERTIES

  WM_HINTS  Additional hints set by the	client for use by the window manager.
	    The	C type of this property	is _X_W_M_H_i_n_t_s.




STRUCTURES
  The _X_W_M_H_i_n_t_s structure contains:

  /* Window manager hints mask bits */


  #define

	    _I_n_p_u_t_H_i_n_t

			       (1L << 0)



  #define

	    _S_t_a_t_e_H_i_n_t

			       (1L << 1)


  #define

	    _I_c_o_n_P_i_x_m_a_p_H_i_n_t

			       (1L << 2)


  #define

	    _I_c_o_n_W_i_n_d_o_w_H_i_n_t

			       (1L << 3)


  #define

	    _I_c_o_n_P_o_s_i_t_i_o_n_H_i_n_t

			       (1L << 4)


  #define

	    _I_c_o_n_M_a_s_k_H_i_n_t

			       (1L << 5)


  #define

	    _W_i_n_d_o_w_G_r_o_u_p_H_i_n_t

			       (1L << 6)


  #define

	    _A_l_l_H_i_n_t_s

			       (InputHint|StateHint|IconPixmapHint|
			       IconWindowHint|IconPositionHint|
			       IconMaskHint|WindowGroupHint)

  /* Values */

  typedef struct {
	  long flags;	  /* marks which fields	in this	structure are defined */
	  Bool input;	  /* does this application rely	on the window manager to
			  get keyboard input? */
	  int initial_state;	  /* see below */
	  Pixmap icon_pixmap;	  /* pixmap to be used as icon */
	  Window icon_window;	  /* window to be used as icon */
	  int icon_x, icon_y;	  /* initial position of icon */
	  Pixmap icon_mask;	  /* pixmap to be used as mask for icon_pixmap */
	  XID window_group;	  /* id	of related window group	*/
	  /* this structure may	be extended in the future */
  } XWMHints;

  The input member is used to communicate to the window	manager	the input
  focus	model used by the application.	Applications that expect input but
  never	explicitly set focus to	any of their subwindows	(that is, use the
  push model of	focus management), such	as X Version 10	style applications
  that use real-estate driven focus, should set	this member to _T_r_u_e.  Simi-
  larly, applications that set input focus to their subwindows only when it
  is given to their top-level window by	a window manager should	also set this
  member to _T_r_u_e.  Applications	that manage their own input focus by expli-
  citly	setting	focus to one of	their subwindows whenever they want keyboard
  input	(that is, use the pull model of	focus management) should set this
  member to _F_a_l_s_e.  Applications that never expect any keyboard	input also
  should set this member to _F_a_l_s_e.

  Pull model window managers should make it possible for push model applica-
  tions	to get input by	setting	input focus to the top-level windows of
  applications whose input member is _T_r_u_e.  Push model window managers should
  make sure that pull model applications do not	break them by resetting	input
  focus	to _P_o_i_n_t_e_r_R_o_o_t when it is appropriate (for example, whenever an
  application whose input member is _F_a_l_s_e sets input focus to one of its
  subwindows).

  The definitions for the initial_state	flag are:


  #define

	    _W_i_t_h_d_r_a_w_n_S_t_a_t_e

			     0




  #define

	    _N_o_r_m_a_l_S_t_a_t_e

			     1

				 /* most appli-
				 cations start
				 this way */


  #define

	    _I_c_o_n_i_c_S_t_a_t_e

			     3

				 /* application
				 wants to start
				 as an icon */
  The icon_mask	specifies which	pixels of the icon_pixmap should be used as
  the icon. This allows	for nonrectangular icons.  Both	icon_pixmap and
  icon_mask must be bitmaps.  The icon_window lets an application provide a
  window for use as an icon for	window managers	that support such use.	The
  window_group lets you	specify	that this window belongs to a group of other
  windows.  For	example, if a single application manipulates multiple top-
  level	windows, this allows you to provide enough information that a window
  manager can iconify all of the windows rather	than just the one window.




DIAGNOSTICS

  _B_a_d_A_l_l_o_c  The	server failed to allocate the requested	resource or server
	    memory.

  _B_a_d_W_i_n_d_o_w A value for	a Window argument does not name	a defined Window.

SEE ALSO
  XAllocClassHint(3X11), XAllocIconSize(3X11), XAllocSizeHints(3X11),
  XFree(3X11), XSetCommand(3X11), XSetTransientForHint(3X11),
  XSetTextProperty(3X11), XSetWMClientMachine(3X11),
  XSetWMColormapWindows(3X11), XSetWMIconName(3X11), XSetWMName(3X11),
  XSetWMProperties(3X11), XSetWMProtocols(3X11),
  XStringListToTextProperty(3X11)
  _X_l_i_b - _C _L_a_n_g_u_a_g_e _X _I_n_t_e_r_f_a_c_e



















































