<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >How could I get any widgets position?</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="GTK+ FAQ" HREF="book1.html"><LINK REL="UP" TITLE="Development with GTK+: general questions" HREF="c466.html"><LINK REL="PREVIOUS" TITLE="How do I reparent a widget?" HREF="x626.html"><LINK REL="NEXT" TITLE="How do I set the size of a widget/window? How do I prevent the user resizing my window? [GTK 2.x]" HREF="x653.html"></HEAD ><BODY CLASS="SECT1" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >GTK+ FAQ</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="x626.html" ACCESSKEY="P" ><<< Previous</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >Development with GTK+: general questions</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="x653.html" ACCESSKEY="N" >Next >>></A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A NAME="AEN633" >How could I get any widgets position?</A ></H1 ><P >As Tim Janik pointed out, there are different cases, and each case requires a different solution.</P ><P ></P ><UL ><LI ><P > If you want the position of a widget relative to its parent, you should use <TT CLASS="LITERAL" >widget->allocation.x</TT > and <TT CLASS="LITERAL" >widget->allocation.y</TT >.</P ></LI ><LI ><P > If you want the position of a window relative to the X root window, you should use <TT CLASS="LITERAL" >gdk_window_get_geometry()</TT > <TT CLASS="LITERAL" >gdk_window_get_position()</TT > or <TT CLASS="LITERAL" >gdk_window_get_origin()</TT >.</P ></LI ><LI ><P > If you want to get the position of the window (including the WM decorations), you should use <TT CLASS="LITERAL" >gdk_window_get_root_origin()</TT >.</P ></LI ><LI ><P > Last but not least, if you want to get a Window Manager frame position, you should use <TT CLASS="LITERAL" >gdk_window_get_deskrelative_origin()</TT >.</P ></LI ></UL ><P >Your choice of Window Manager will have an effect of the results of the above functions. You should keep this in mind when writing your application. This is dependant upon how the Window Managers manage the decorations that they add around windows.</P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="x626.html" ACCESSKEY="P" ><<< Previous</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="book1.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="x653.html" ACCESSKEY="N" >Next >>></A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >How do I reparent a widget?</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="c466.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >How do I set the size of a widget/window? How do I prevent the user resizing my window? <I CLASS="EMPHASIS" >[GTK 2.x]</I ></TD ></TR ></TABLE ></DIV ></BODY ></HTML >