亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sec-widgetindetail.html

?? gtk_text program sample&eg
?? HTML
?? 第 1 頁 / 共 4 頁
字號:
&#13;typedef struct _GtkContainerClass  GtkContainerClass;struct _GtkContainerClass{  GtkWidgetClass parent_class;    guint   n_child_args;  void (* add)                  (GtkContainer    *container,                                 GtkWidget       *widget);  void (* remove)               (GtkContainer    *container,                                 GtkWidget       *widget);  void (* check_resize)         (GtkContainer    *container);  void (* forall)               (GtkContainer    *container,                                 gboolean         include_internals,                                 GtkCallback      callback,                                 gpointer         callbabck_data);  gint (* focus)                (GtkContainer    *container,                                 GtkDirectionType  direction);  void (* set_focus_child)      (GtkContainer    *container,                                 GtkWidget       *widget);  GtkType (*child_type)         (GtkContainer   *container);  void    (*set_child_arg)      (GtkContainer   *container,                                 GtkWidget      *child,                                 GtkArg         *arg,                                 guint           arg_id);  void    (*get_child_arg)      (GtkContainer   *container,                                 GtkWidget      *child,                                 GtkArg         *arg,                                 guint           arg_id);  gchar*  (*composite_name)     (GtkContainer   *container,                                 GtkWidget      *child);  /* Padding for future expansion */  GtkFunction pad1;  GtkFunction pad2;};    </pre>              </td>            </tr>          </table>          <p>            Many of these class functions do not have corresponding            signals. <span class="STRUCTNAME">add</span>, <span            class="STRUCTNAME">remove</span>, <span class=             "STRUCTNAME">check_resize</span>, <span class=             "STRUCTNAME">focus</span>, and <span class=            "STRUCTNAME">set_focus_child</span> methods are default            handlers for signals with the same name. The others are            just methods.          </p>          <p>            The <span class="STRUCTNAME">check_resize</span> method            recalculates layout if necessary; it is invoked by the            idle handler installed by <tt class="FUNCTION">            gtk_widget_queue_resize()</tt>. As the previous section            mentioned, subclasses should not have to concern            themselves with this process.          </p>          <p>            The <span class="STRUCTNAME">focus</span> and <span            class="STRUCTNAME">set_focus_child</span> methods            handle moving focus around a <tt class="CLASSNAME">            GtkWindow</tt>. Users can move the focus with the arrow            keys and the tab key. This results in emissions of the            <span class="SYMBOL">"focus"</span> signal, with the            <span class="STRUCTNAME">direction</span> argument            indicating which way the focus should move. The            possible directions are: <span class="STRUCTNAME">            GTK_DIR_TAB_FORWARD</span>, <span class="STRUCTNAME">            GTK_DIR_TAB_BACKWARD</span>, <span class="STRUCTNAME">            GTK_DIR_UP</span>, <span class="STRUCTNAME">            GTK_DIR_DOWN</span>, <span class="STRUCTNAME">            GTK_DIR_LEFT</span>, and <span class="STRUCTNAME">            GTK_DIR_RIGHT</span>. <tt class="CLASSNAME">            GtkContainer</tt> provides a default implementation            based on the geometric location of child widgets; it            works fine for most standard layout containers, such as            <tt class="CLASSNAME">GtkBox</tt> and <tt class=             "CLASSNAME">GtkTable</tt>. It should also work for <tt            class="CLASSNAME">GtkBin</tt> subclasses. More            elaborate or unusual containers, such as the tree and            list widgets, or <tt class="CLASSNAME">            GtkNotebook</tt>, override this method. The <span            class="STRUCTNAME">focus</span> method should return            <span class="STRUCTNAME">TRUE</span> if an appropriate            child was found and the focus was moved (using <tt            class="FUNCTION">gtk_widget_grab_focus()</tt>).          </p>          <p>            The <span class="STRUCTNAME">set_focus_child</span>            method is used by <tt class="FUNCTION">            gtk_widget_grab_focus()</tt> to set the focus child of            a container. <tt class="FUNCTION">            gtk_widget_grab_focus()</tt> can be invoked by the            <span class="STRUCTNAME">focus</span> method of a            container, or by a widget implementation (for example,            <tt class="CLASSNAME">GtkEntry</tt> grabs the focus if            the user clicks on it). The default implementation            simply sets the <span class="STRUCTNAME">            focus_child</span> field of the container, and            increments the child's reference count.          </p>          <p>            <span class="STRUCTNAME">composite_name</span> returns            a special name for a child when it's a part of a            particular container. For example, the composite names            of the two <tt class="CLASSNAME">GtkScrollbar</tt>            widgets in a <tt class="CLASSNAME">            GtkScrolledWindow</tt> are "hscrollbar" and            "vscrollbar." These names allow themes to specify            widget attributes precisely. The default implementation            of this method should always work fine; it returns the            name set with <tt class="FUNCTION">            gtk_widget_set_composite_name()</tt>.          </p>          <p>            <span class="STRUCTNAME">n_child_args</span>, <span            class="STRUCTNAME">set_child_arg</span>, and <span            class="STRUCTNAME">get_child_arg</span> are exactly            analagous to the <span class="STRUCTNAME">            n_args</span>, <span class="STRUCTNAME">get_arg</span>,            and <span class="STRUCTNAME">set_arg</span> fields of            <span class="STRUCTNAME">GtkObjectClass</span>. <a            href="hc-objectargs.html#SEC-GETSETARG">the section            called <i>Using Object Arguments in Your Own <span            class="STRUCTNAME">GtkObject</span> Subclass</i> in the            chapter called <i>The GTK+ Object and Type            System</i></a> mentions this briefly. Child arguments            are used to get and set attributes of the            container-child unit, such as the packing parameters            for <tt class="CLASSNAME">GtkBox</tt> or the attachment            parameters for <tt class="CLASSNAME">GtkTable</tt>. In            contrast, normal object arguments set the            characteristics of a single object in isolation. Though            the implementation differs, child arguments work almost            exactly like the object arguments described in <a href=             "cha-objects.html">the chapter called <i>The GTK+            Object and Type System</i></a>. The only visible            difference is that the get and set functions take a            container and a widget as arguments, instead of a            single object.          </p>          <p>            The following section introduces the remaining            functions in <tt class="CLASSNAME">GtkContainer</tt> by            describing their implementation in <tt class=            "CLASSNAME">GtkBin</tt>.          </p>        </div>      </div>      <div class="SECT2">        <h2 class="SECT2">          <a name="Z161"><tt class="CLASSNAME">GtkBin</tt>:          Containers With One Child</a>        </h2>        <p>          <tt class="CLASSNAME">GtkBin</tt> doesn't introduce any          new interfaces; it simply adds a data member to each          container instance for storing a single child, and          provides default implementations for the container          methods that operate on this one child. <tt class=           "CLASSNAME">GtkBin</tt> implements the <span class=           "STRUCTNAME">add</span>, <span class="STRUCTNAME">          remove</span>, <span class="STRUCTNAME">forall</span>,          and <span class="STRUCTNAME">child_type</span> methods          from <tt class="CLASSNAME">GtkContainer</tt>; combined          with <tt class="CLASSNAME">GtkContainer</tt>'s default          implementations, simple subclasses of <tt class=          "CLASSNAME">GtkBin</tt> (such as <tt class="CLASSNAME">          GtkEventBox</tt>, <tt class="CLASSNAME">          GtkAlignment</tt>, and <tt class="CLASSNAME">          GtkFrame</tt>) do not need to override any <tt class=           "CLASSNAME">GtkContainer</tt> methods. Here's the          instance struct:        </p>        <table border="0" bgcolor="#E0E0E0" width="100%">          <tr>            <td><pre class="PROGRAMLISTING">&#13;typedef struct _GtkBin       GtkBin;struct _GtkBin{  GtkContainer container;  GtkWidget *child;};      </pre>            </td>          </tr>        </table>        <p>          And the class struct:        </p>        <table border="0" bgcolor="#E0E0E0" width="100%">          <tr>            <td><pre class="PROGRAMLISTING">&#13;typedef struct _GtkBinClass  GtkBinClass;struct _GtkBinClass{  GtkContainerClass parent_class;};      </pre>            </td>          </tr>        </table>        <p>          No rocket science here.        </p>        <div class="SECT3">          <h3 class="SECT3">            <a name="Z162">Adding and Removing Children</a>          </h3>          <p>            The <span class="STRUCTNAME">add</span> and <span            class="STRUCTNAME">remove</span> functions do not have            a default implementation (well, technically they do:            the default implementation prints a warning that they            aren't implemented). All containers should override            these functions; their corresponding signals are            emitted when library users call <tt class="FUNCTION">            gtk_container_add()</tt> and <tt class="FUNCTION">            gtk_container_remove()</tt>. For containers that            normally require parameters when adding children (such            as <tt class="CLASSNAME">GtkBox</tt> and <tt class=             "CLASSNAME">GtkTable</tt>), the <span class=            "STRUCTNAME">add</span> method should simply use            reasonable defaults.          </p>          <p>            <tt class="CLASSNAME">GtkBin</tt> implements an add            method as follows:          </p>          <table border="0" bgcolor="#E0E0E0" width="100%">            <tr>              <td><pre class="PROGRAMLISTING">&#13;static voidgtk_bin_add (GtkContainer *container,             GtkWidget    *child){  GtkBin *bin;  g_return_if_fail (container != NULL);  g_return_if_fail (GTK_IS_BIN (container));  g_return_if_fail (child != NULL);  g_return_if_fail (GTK_IS_WIDGET (child));  bin = GTK_BIN (container);  g_return_if_fail (bin-&gt;child == NULL);  gtk_widget_set_parent (child, GTK_WIDGET (bin));  bin-&gt;child = child;  if (GTK_WIDGET_VISIBLE (child-&gt;parent))    {      if (GTK_WIDGET_REALIZED (child-&gt;parent) &amp;&amp;          !GTK_WIDGET_REALIZED (child))        gtk_widget_realize (child);            if (GTK_WIDGET_MAPPED (child-&gt;parent) &amp;&amp;          !GTK_WIDGET_MAPPED (child))        gtk_widget_map (child);    }    if (GTK_WIDGET_VISIBLE (child) &amp;&amp; GTK_WIDGET_VISIBLE (container))    gtk_widget_queue_resize (child);}    </pre>              </td>            </tr>          </table>          <p>            Notice the required parts of the add method:          </p>          <ul>            <li>              <p>                <tt class="FUNCTION">gtk_widget_set_parent()</tt>                is called to set the widget's parent; this fills in                <span class="STRUCTNAME">widget-&gt;parent</span>                and handles reference counting and some other                internal details.              </p>            </li>            <li>              <p>                The container saves a pointer to the child; this is                easy for <tt class="CLASSNAME">GtkBin</tt>, since                there is only one child and it goes in <span class=                 "STRUCTNAME">bin-&gt;child</span>.              </p>            </li>            <li>              <p>                If the container has been shown (i.e., if its <span                class="STRUCTNAME">GTK_VISIBLE</span> flag is set),                parent and child's <span class="STRUCTNAME">                GTK_REALIZED</span> and <span class="STRUCTNAME">                GTK_MAPPED</span> states are synchronized. That is,                the child is realized and mapped if the parent is                realized and mapped.              </p>            </li>            <li>              <p>                If both parent and child have been shown, a resize                is queued. That is, layout will be recalculated in                light of the new child.              </p>            </li>          </ul>          <p>            The remove method reverses the process; here is its            implementation:          </p>          <table border="0" bgcolor="#E0E0E0" width="100%">            <tr>              <td><pre class="PROGRAMLISTING">&#13;static voidgtk_bin_remove (GtkContainer *container,                GtkWidget    *child){  GtkBin *bin;  gboolean widget_was_visible;  g_return_if_fail (container != NULL);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产人妖乱国产精品人妖| 亚洲精品videosex极品| 欧美日韩在线精品一区二区三区激情| 精品一区二区久久久| 亚洲自拍偷拍综合| 亚洲高清一区二区三区| 香蕉久久一区二区不卡无毒影院| 亚洲欧美电影一区二区| 亚洲天堂精品在线观看| 亚洲视频网在线直播| 综合久久久久综合| 中文字幕亚洲视频| 亚洲欧美偷拍另类a∨色屁股| 国产精品网站在线| 亚洲区小说区图片区qvod| 亚洲天堂精品在线观看| 国产九色sp调教91| 成人性生交大片免费| 97aⅴ精品视频一二三区| 在线观看亚洲一区| 6080日韩午夜伦伦午夜伦| 91精品久久久久久久久99蜜臂| 日韩一区二区三区在线观看| 精品捆绑美女sm三区| 久久这里都是精品| 亚洲欧洲av另类| 一区二区三区四区在线| 午夜一区二区三区视频| 久久精品国产精品亚洲红杏| 国产一区二区三区最好精华液| 成人黄色电影在线| 欧美日韩在线直播| 国产亚洲一区二区三区在线观看| 国产午夜精品一区二区三区嫩草 | 91美女在线观看| 欧美性视频一区二区三区| 91精品国产综合久久婷婷香蕉| 9191久久久久久久久久久| 国产色91在线| 午夜久久久久久久久久一区二区| 国产精品一区二区不卡| 精品久久一区二区三区| 国产精品国产三级国产aⅴ无密码| 亚洲自拍偷拍麻豆| 福利一区二区在线| 欧美人牲a欧美精品| 中文字幕欧美激情一区| 五月天视频一区| 成人毛片视频在线观看| 日韩一区二区三区三四区视频在线观看 | 国产一区二区三区在线观看精品 | 中文字幕一区二区视频| 亚洲18色成人| 成人免费高清在线| 91麻豆精品国产91久久久久久| 国产精品第四页| 经典三级视频一区| 欧美性xxxxx极品少妇| 国产日韩在线不卡| 久久精品国产一区二区三| 91麻豆.com| 国产精品欧美久久久久一区二区 | 久久亚区不卡日本| 午夜婷婷国产麻豆精品| 91色.com| 国产精品美女一区二区三区| 国产一区二区三区在线观看免费视频| 欧美群妇大交群中文字幕| 一区二区国产盗摄色噜噜| 成人在线视频一区| 久久一夜天堂av一区二区三区| 日韩精品福利网| 欧美老肥妇做.爰bbww| 亚洲国产日韩综合久久精品| 91成人免费在线视频| 亚洲国产精品精华液2区45| 国产精品资源网| 久久婷婷国产综合国色天香| 国产综合色产在线精品| 国产亚洲欧美激情| 丰满少妇在线播放bd日韩电影| 国产午夜精品久久久久久免费视| 国内精品写真在线观看| 久久久精品黄色| 成人三级伦理片| 中文字幕日本乱码精品影院| 97久久精品人人做人人爽50路 | 91久久精品国产91性色tv| 美女网站色91| 日韩精品综合一本久道在线视频| 全国精品久久少妇| 日韩一区二区不卡| 国产精品一区一区三区| 日韩一区欧美小说| 欧美亚洲动漫精品| 蜜桃视频在线一区| 久久久久久久久久久久久夜| 成人开心网精品视频| 一区二区三区四区精品在线视频| 欧美日韩一卡二卡| 国内精品国产三级国产a久久| 欧美韩日一区二区三区| 91免费视频观看| 日韩高清不卡一区二区| 久久99久久99小草精品免视看| 国产成人自拍网| 成人久久视频在线观看| 555www色欧美视频| 国产精品高潮呻吟| 国内一区二区在线| 欧美曰成人黄网| 久久久99精品免费观看| 日韩在线一二三区| 色偷偷久久人人79超碰人人澡 | 色婷婷精品大视频在线蜜桃视频 | 国产精品视频麻豆| 亚洲午夜羞羞片| 粉嫩av一区二区三区在线播放| 91成人免费在线| 中文字幕亚洲视频| 国产一区在线看| 国产精品另类一区| 99久久国产综合精品女不卡| 美脚の诱脚舐め脚责91| 成人国产在线观看| 久久精品亚洲国产奇米99| 国产乱码精品一区二区三区av | 国产精品视频yy9299一区| 国产精品夜夜嗨| 性做久久久久久免费观看欧美| 欧美激情综合在线| 91精品国产综合久久久久久久久久 | 国产成人在线电影| 五月婷婷久久丁香| 综合久久国产九一剧情麻豆| 日韩一级高清毛片| 欧美日韩美少妇| eeuss影院一区二区三区| 久久se精品一区二区| 日韩一区精品字幕| 亚洲精品成人精品456| 亚洲国产成人午夜在线一区| 精品国产91乱码一区二区三区| 2017欧美狠狠色| 蜜桃视频一区二区| 中文字幕av一区二区三区高| caoporm超碰国产精品| 亚洲精品视频免费观看| 在线不卡一区二区| 成人自拍视频在线观看| 午夜精品福利在线| 中文字幕精品一区| 日韩视频免费观看高清在线视频| 国产毛片精品一区| 亚洲国产美国国产综合一区二区| 91精品国产综合久久香蕉的特点 | 欧美精品一卡二卡| 久久99热这里只有精品| 亚洲免费三区一区二区| 欧美色综合网站| 91美女片黄在线观看| 亚洲成人免费看| 亚洲制服丝袜av| 欧美日韩高清在线播放| 热久久久久久久| 亚洲一区二区三区爽爽爽爽爽| 久久一区二区三区四区| 欧美一区二区高清| 一区二区三区鲁丝不卡| 欧洲视频一区二区| 悠悠色在线精品| 欧美一级片在线观看| 日韩视频在线观看一区二区| 日韩女同互慰一区二区| 久久只精品国产| 中文字幕一区二区三区色视频 | 日本一不卡视频| 裸体在线国模精品偷拍| 国内欧美视频一区二区| 久久成人羞羞网站| 成人性视频免费网站| 国产精品亚洲午夜一区二区三区| 国产一区二区主播在线| 国产精品1区2区3区| 色综合视频在线观看| 色综合久久综合中文综合网| 91亚洲国产成人精品一区二区三| www.亚洲国产| 国产伦理精品不卡| 色噜噜狠狠成人网p站| 欧美一区二区精美| 日产国产高清一区二区三区| 国产精品视频第一区| 欧美zozozo| 久久精品男人的天堂| 亚洲欧洲日本在线| 久久91精品国产91久久小草| av电影天堂一区二区在线| 91精品国产麻豆| 亚洲理论在线观看|