Blob Blame History Raw
<!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"
>&#60;&#60;&#60; 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 &#62;&#62;&#62;</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-&#62;allocation.x</TT
> and
<TT
CLASS="LITERAL"
>widget-&#62;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"
>&#60;&#60;&#60; 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 &#62;&#62;&#62;</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
>