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

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

?? sec-widgetindetail.html

?? gtk_text program sample&eg
?? HTML
?? 第 1 頁 / 共 4 頁
字號:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html>  <head>    <title>      GtkWidget In Detail    </title>    <meta name="GENERATOR" content=    "Modular DocBook HTML Stylesheet Version 1.45">    <link rel="HOME" title="GTK+ / Gnome Application Development"    href="ggad.html">    <link rel="UP" title="Writing a GtkWidget" href=    "cha-widget.html">    <link rel="PREVIOUS" title="An Example: The GtkEv Widget" href=     "z147.html">    <link rel="NEXT" title="GtkVBox: A Windowless Container" href=     "z166.html">  </head>  <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink=   "#840084" alink="#0000FF">    <div class="NAVHEADER">      <table width="100%" border="0" bgcolor="#ffffff" cellpadding=       "1" cellspacing="0">        <tr>          <th colspan="4" align="center">            <font color="#000000" size="2">GTK+ / Gnome Application            Development</font>          </th>        </tr>        <tr>          <td width="25%" bgcolor="#ffffff" align="left">            <a href="z147.html"><font color="#0000ff" size="2"><b>            &lt;&lt;&lt; Previous</b></font></a>          </td>          <td width="25%" colspan="2" bgcolor="#ffffff" align=           "center">            <font color="#0000ff" size="2"><b><a href="ggad.html">            <font color="#0000ff" size="2"><b>            Home</b></font></a></b></font>          </td>          <td width="25%" bgcolor="#ffffff" align="right">            <a href="z166.html"><font color="#0000ff" size="2"><b>            Next &gt;&gt;&gt;</b></font></a>          </td>        </tr>      </table>    </div>    <div class="SECT1">      <h1 class="SECT1">        <a name="SEC-WIDGETINDETAIL"><tt class="CLASSNAME">        GtkWidget</tt> In Detail</a>      </h1>      <p>        This section catalogs the functions in <span class=         "STRUCTNAME">GtkWidgetClass</span> more rigorously, and        describes the default implementation of each.      </p>      <div class="SECT2">        <h2 class="SECT2">          <a name="Z155">Destruction</a>        </h2>        <p>          Widget destruction is not significantly different from          object destruction in general, as described in <a href=           "sec-finalization.html">the section called <i>Object          Finalization</i> in the chapter called <i>The GTK+ Object          and Type System</i></a>. As always, there are three          phases: shutdown, destroy, and finalize. Only the destroy          method is a signal; the others are class functions only.          If you override any of the three, you must "chain up" to          the parent class implementation.        </p>        <p>          <tt class="CLASSNAME">GtkWidget</tt> has default          implementations of all three; you should know what they          do:        </p>        <ul>          <li>            <p>              In its shutdown method, a <tt class="CLASSNAME">              GtkWidget</tt> removes itself from its parent              container (if any), and then unrealizes itself. This              implies that widgets are always unrealized inside              their destroy methods. It chains up to the <span              class="STRUCTNAME">GtkObject</span> shutdown method              which emits the <span class="SYMBOL">"destroy"</span>              signal.            </p>          </li>          <li>            <p>              In its destroy method, a <tt class="CLASSNAME">              GtkWidget</tt> releases the grab if it has it,              unreferences its style and sets <span class=               "STRUCTNAME">widget-&gt;style</span> to <span class=               "STRUCTNAME">NULL</span>, and gives up any              connections it had to the current selection. (<span              class="STRUCTNAME">GtkEntry</span> and other              editable-text widgets allow you to select and paste              text.) It chains up to the <span class="STRUCTNAME">              GtkObject</span> destroy method which disconnects any              signal handlers for the object.            </p>          </li>          <li>            <p>              In its finalize method, a <tt class="CLASSNAME">              GtkWidget</tt> frees a number of private data              structures (stored as object data, see <a href=               "sec-objectdata.html">the section called <i>Attaching              Data to Objects</i> in the chapter called <i>The GTK+              Object and Type System</i></a>), and frees <span              class="STRUCTNAME">widget-&gt;name</span>. It chains              up to the <span class="STRUCTNAME">GtkObject</span>              finalize method which frees the instance struct.            </p>          </li>        </ul>      </div>      <div class="SECT2">        <h2 class="SECT2">          <a name="Z156">Showing, Hiding, and Mapping</a>        </h2>        <p>          Four methods are provided to show and hide widgets. <span          class="STRUCTNAME">show</span> and <span class=          "STRUCTNAME">hide</span> are rarely overridden; the          default implementations almost always suffice. <span          class="STRUCTNAME">show_all</span> and <span class=           "STRUCTNAME">hide_all</span> are overridden by container          widgets; they show or hide the container and all its          children. Their default implementation simply shows the          widget itself: no non-container should need to change          this. <span class="SYMBOL">"show"</span> and <span class=           "SYMBOL">"hide"</span> are registered as signals, but the          <span class="STRUCTNAME">_all</span> variants are not.        </p>        <p>          The default implementation of <span class="STRUCTNAME">          show</span> sets the <span class="STRUCTNAME">          GTK_VISIBLE</span> flag, and maps the widget if its          parent is mapped. When containers are mapped, they map          any children with the <span class="STRUCTNAME">          GTK_VISIBLE</span> flag set. Thus, the <span class=           "STRUCTNAME">show</span> implementation ensures that a          widget will be mapped eventually. (When a widget is          finally mapped, the <span class="STRUCTNAME">          GTK_MAPPED</span> flag is set in addition to <span class=           "STRUCTNAME">GTK_VISIBLE</span>.)        </p>        <p>          The default <span class="STRUCTNAME">hide</span>          implementation does the opposite: it unsets the <span          class="STRUCTNAME">GTK_VISIBLE</span> flag, and unmaps          the widget if <span class="STRUCTNAME">GTK_MAPPED</span>          is set.        </p>        <p>          The default <span class="STRUCTNAME">map</span> and <span          class="STRUCTNAME">unmap</span> implementations are much          more frequently overridden. The default implementations          should suffice for windowless widgets and widgets with a          single window (<span class=          "STRUCTNAME">widget-&gt;window</span>). Widgets with          additional subwindows or other special needs may need to          override the defaults.        </p>        <p>          The map method is responsible for putting a widget on the          screen. The default implementation sets the <span class=           "STRUCTNAME">GTK_MAPPED</span> flag, and calls <tt class=           "FUNCTION">gdk_window_show()</tt> on <span class=           "STRUCTNAME">widget-&gt;window</span> for widgets that          have a window. If a widget has subwindows, or needs to          take any special action when it appears on the screen, it          must override the map method. (It may optionally chain up          to the default method, however.) Container widgets are          required to override the map method, because they must          iterate over their children and map each child widget          with the <span class="STRUCTNAME">GTK_VISIBLE</span> flag          set (i.e., each child widget that's been shown).        </p>        <p>          The unmap method is simply the reverse of the map method;          it undoes anything the map method did. By default, it          unsets the <span class="STRUCTNAME">GTK_MAPPED</span>          flag and calls <tt class="FUNCTION">          gdk_window_hide()</tt> to hide <span class="STRUCTNAME">          widget-&gt;window</span>. Container widgets must override          the method to unmap their child windows.        </p>        <p>          Keep in mind that none of these methods are invoked          directly; they are invoked by calling <tt class=          "FUNCTION">gtk_widget_show()</tt>, <tt class="FUNCTION">          gtk_widget_map()</tt>, and so on. These functions may          perform special actions before and after invocation. Here          is a summary:        </p>        <ul>          <li>            <p>              <tt class="FUNCTION">gtk_widget_show()</tt> "queues a              resize" on the widget before emitting the show              signal. This means notifying the widget's parent              container that it should rearrange its layout.            </p>          </li>          <li>            <p>              <tt class="FUNCTION">gtk_widget_hide()</tt> does the              same, since a newly-invisible widget implies              recalculating the layout just as a newly-visible one              does.            </p>          </li>          <li>            <p>              <tt class="FUNCTION">gtk_widget_show_all()</tt> and              <tt class="FUNCTION">gtk_widget_hide_all()</tt> don't              do anything special, they simply invoke the              corresponding class function.            </p>          </li>          <li>            <p>              <tt class="FUNCTION">gtk_widget_map()</tt> realizes              the widget before emitting the <span class="SYMBOL">              "map"</span> signal, if the widget is not realized.              This maintains an important invariant (all mapped              widgets are also realized). After emitting the              signal, <tt class="FUNCTION">gtk_widget_map()</tt>              queues a draw for windowless widgets; widgets with              windows will receive an expose event when the window              appears on the screen, so queueing a draw is not              necessary.            </p>          </li>          <li>            <p>              <tt class="FUNCTION">gtk_widget_unmap()</tt> redraws              part of the parent widget if a windowless child is              unmapped (remember that windowless widgets draw on              their parent's <span class="STRUCTNAME">              widget-&gt;window</span>).            </p>          </li>        </ul>      </div>      <div class="SECT2">        <h2 class="SECT2">          <a name="SEC-REALIZEMETHOD">Realization</a>        </h2>        <p>          The <span class="STRUCTNAME">realize</span> and <span          class="STRUCTNAME">unrealize</span> class functions are          registered as signals. <i class="FIRSTTERM">          Realization</i> is the process of creating GDK resources          associated with the widget; including but not limited to          <span class="STRUCTNAME">widget-&gt;window</span> and          <span class="STRUCTNAME">widget-&gt;style</span>.        </p>        <p>          A realize method should do the following:        </p>        <ul>          <li>            <p>              Set the <span class="STRUCTNAME">GTK_REALIZED</span>              flag.            </p>          </li>          <li>            <p>              Create the widget's windows, especially <span class=               "STRUCTNAME">widget-&gt;window</span> which should be              a child of the widget's parent's <span class=               "STRUCTNAME">widget-&gt;window</span> (obtained with              <tt class="FUNCTION">              gtk_widget_get_parent_window()</tt>).            </p>          </li>          <li>            <p>              Place a pointer to the widget in the user data field              of each window.            </p>          </li>          <li>            <p>              For windowless widgets, <span class="STRUCTNAME">              widget-&gt;window</span> should be set to the parent              widget's window (obtained with <tt class="FUNCTION">              gtk_widget_get_parent_window()</tt>). These widgets              should also increase the reference count on <span              class="STRUCTNAME">widget-&gt;window</span> by              calling <tt class="FUNCTION">gdk_window_ref()</tt>.            </p>          </li>          <li>            <p>              Set <span class="STRUCTNAME">widget-&gt;style</span>              using <tt class="FUNCTION">gtk_style_attach()</tt>.            </p>          </li>          <li>            <p>              Set the background of each window using <tt class=               "FUNCTION">gtk_style_set_background()</tt> if              possible, and failing that using some color from the              style. A windowless widget should not do this, since              its parent already has.            </p>          </li>        </ul>        <p>          The default implementation of <span class="STRUCTNAME">          realize</span> is only appropriate for windowless          widgets; it sets the <span class="STRUCTNAME">          GTK_REALIZED</span> flag, sets <span class="STRUCTNAME">          widget-&gt;window</span> to the parent widget's window,          increases the reference count on the parent's window, and          sets <span class="STRUCTNAME">widget-&gt;style</span>.          Widgets with their own <span class="STRUCTNAME">          GdkWindow</span> must override the realize method.        </p>        <p>          The <span class="SYMBOL">"realize"</span> signal invokes          the realize method as its default handler. This signal          should never be emitted directly, because there are          substantial pre- and post-conditions to be enforced. <tt          class="FUNCTION">gtk_widget_realize()</tt> takes care of          the details. Among other things, it ensures that the          widget's parent is realized; GTK+ maintains the invariant          that widgets cannot be realized unless their parents are          also realized.        </p>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人成7777| 久久国产欧美日韩精品| 一区二区三区国产豹纹内裤在线| 亚洲女同ⅹxx女同tv| 亚洲国产精品自拍| 久久99精品国产麻豆不卡| 懂色av一区二区夜夜嗨| 在线免费观看成人短视频| 精品视频一区三区九区| 日韩欧美成人一区二区| 国产精品灌醉下药二区| 日韩中文字幕91| 国产成a人亚洲| 欧美日韩国产精选| 国产午夜精品久久久久久免费视| 亚洲激情网站免费观看| 欧美a级一区二区| 成人美女视频在线看| 欧美日韩小视频| 久久久精品人体av艺术| 亚洲一卡二卡三卡四卡无卡久久| 老司机免费视频一区二区三区| 成人黄动漫网站免费app| 欧美日本在线播放| 国产精品视频观看| 日韩国产精品久久久久久亚洲| 成人免费视频视频在线观看免费 | 精品人在线二区三区| 亚洲人成亚洲人成在线观看图片 | 亚洲一二三四在线观看| 国模无码大尺度一区二区三区| 欧美在线小视频| 国产欧美精品一区| 日韩二区三区在线观看| 色香蕉久久蜜桃| 国产欧美日韩中文久久| 日本午夜一本久久久综合| 91亚洲国产成人精品一区二区三| 精品久久久久99| 午夜精品视频在线观看| 91社区在线播放| 久久久久久久久久久久电影| 日本一道高清亚洲日美韩| 在线精品观看国产| 国产精品女同互慰在线看 | 国产午夜精品久久久久久久| 日韩av午夜在线观看| 91免费版在线看| 欧美激情中文不卡| 国产综合久久久久久久久久久久| 欧美日韩激情一区二区三区| 亚洲女人****多毛耸耸8| 成人伦理片在线| 国产婷婷精品av在线| 久久99国产乱子伦精品免费| 欧美一区日本一区韩国一区| 亚洲午夜精品网| 日本韩国欧美在线| 国产精品灌醉下药二区| 成人午夜看片网址| 国产日韩一级二级三级| 国产综合久久久久久鬼色 | 国产麻豆日韩欧美久久| 日韩欧美一级精品久久| 日韩国产精品久久久久久亚洲| 欧美视频中文一区二区三区在线观看 | 亚洲最新视频在线播放| 成人国产精品免费网站| 欧美精彩视频一区二区三区| 国产一区二区精品在线观看| 日韩电影免费在线观看网站| 欧美日韩国产精选| 午夜精品久久久久久不卡8050| 欧美性猛片aaaaaaa做受| 一区二区三区小说| 欧美日韩国产片| 日本不卡高清视频| 日韩精品中文字幕在线一区| 蜜桃免费网站一区二区三区| 欧美一级爆毛片| 精久久久久久久久久久| 久久久久久久网| 成人av小说网| 亚洲影视资源网| 欧美丰满高潮xxxx喷水动漫| 日精品一区二区三区| 日韩一级二级三级精品视频| 另类人妖一区二区av| 久久综合给合久久狠狠狠97色69| 国产精品911| 18成人在线观看| 在线观看亚洲a| 奇米精品一区二区三区在线观看一 | 国产婷婷色一区二区三区四区 | 1000部国产精品成人观看| 99精品一区二区三区| 亚洲一区二区在线免费观看视频| 欧美色成人综合| 精品制服美女久久| 国产亚洲精品精华液| 91网址在线看| 肉色丝袜一区二区| 26uuu亚洲综合色| 成人av片在线观看| 亚洲成人av在线电影| 欧美岛国在线观看| 久久综合久久99| 91一区二区三区在线观看| 亚洲综合无码一区二区| 日韩欧美电影一二三| 成人av资源在线| 五月开心婷婷久久| 久久久久久久久蜜桃| 色综合激情久久| 另类欧美日韩国产在线| 国产精品高潮呻吟| 欧美一区二区三区免费视频| 国产91露脸合集magnet| 亚洲一区二区四区蜜桃| 精品国产免费一区二区三区四区| 成人国产亚洲欧美成人综合网| 亚洲一区二区三区视频在线播放 | 免费看日韩a级影片| 国产精品女同一区二区三区| 欧美日韩精品是欧美日韩精品| 国内精品国产成人国产三级粉色 | 欧美日韩中文字幕一区二区| 久88久久88久久久| 亚洲精品视频在线| 精品国产一区二区三区不卡 | 亚洲综合小说图片| 国产日韩一级二级三级| 欧美精品乱码久久久久久| 国产乱对白刺激视频不卡| 亚洲综合在线五月| 国产亚洲制服色| 日日骚欧美日韩| 中文字幕乱码久久午夜不卡| 欧美精品第1页| 波多野洁衣一区| 精品一区二区免费在线观看| 亚洲欧美另类图片小说| 久久看人人爽人人| 欧美巨大另类极品videosbest| 97久久精品人人爽人人爽蜜臀 | 久久久久99精品一区| 欧美日韩一区国产| 成人app下载| 国产精品综合一区二区三区| 五月天激情小说综合| 亚洲九九爱视频| 国产精品美女www爽爽爽| 日韩视频免费直播| 欧美人狂配大交3d怪物一区| av电影天堂一区二区在线观看| 国产精品自在欧美一区| 日韩中文字幕1| 午夜视黄欧洲亚洲| 亚洲精品国产一区二区三区四区在线| 国产日韩av一区| 精品奇米国产一区二区三区| 欧美高清dvd| 欧美日韩一区三区四区| 一本在线高清不卡dvd| 豆国产96在线|亚洲| 精品在线亚洲视频| 热久久一区二区| 五月激情综合婷婷| 亚洲自拍另类综合| 曰韩精品一区二区| 亚洲码国产岛国毛片在线| 国产精品三级在线观看| 国产视频在线观看一区二区三区| 精品美女在线播放| 精品少妇一区二区三区在线播放| 777精品伊人久久久久大香线蕉| 91福利国产成人精品照片| 丰满亚洲少妇av| 国产成人精品综合在线观看 | 国产欧美精品一区二区色综合朱莉| 日韩欧美电影在线| 精品久久久久一区二区国产| 日韩精品一区二区三区四区| 欧美一区二区免费视频| 欧美一区二区三区婷婷月色| 欧美日本视频在线| 欧美色男人天堂| 制服丝袜中文字幕一区| 欧美精品18+| 欧美videos大乳护士334| 日韩精品一区二区三区在线| 26uuu国产电影一区二区| 久久久久亚洲蜜桃| 国产精品网站导航| 亚洲欧美视频在线观看| 亚洲欧美另类久久久精品| 一区二区三区欧美| 午夜精品一区二区三区免费视频| 日韩制服丝袜先锋影音| 激情丁香综合五月|