亚洲欧美第一页_禁久久精品乱码_粉嫩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精品伊人久久久大香线蕉的| 国产精品亲子伦对白| 欧美日韩视频一区二区| 99re66热这里只有精品3直播| 国产高清久久久久| 国产成人a级片| 91性感美女视频| 91香蕉视频在线| 欧美影视一区二区三区| 欧美视频一区二区三区四区 | 欧美日本精品一区二区三区| 欧美日韩不卡在线| 欧美一级日韩不卡播放免费| 日韩精品一区二区在线| 久久尤物电影视频在线观看| 国产午夜精品一区二区三区视频 | 国产免费观看久久| 中文字幕一区二区三区四区不卡| 亚洲视频一二三| 午夜影院在线观看欧美| 美女视频一区二区三区| 国产精品夜夜嗨| 成人av资源网站| 欧洲精品在线观看| 日韩视频一区二区| 欧美国产精品一区二区三区| 亚洲伦理在线精品| 日本不卡不码高清免费观看| 国产精华液一区二区三区| 日本国产一区二区| 91精品福利在线一区二区三区| 精品国产乱码久久久久久老虎| 国产精品久久久一本精品| 亚洲自拍另类综合| 精品一区二区免费视频| 99在线精品观看| 欧美一区二区三区啪啪| 国产欧美一区二区精品婷婷| 亚洲综合小说图片| 久久99国产精品免费网站| 成人av资源站| 日韩欧美视频一区| 18欧美亚洲精品| 蜜桃视频一区二区三区| aaa欧美大片| 91精品国产综合久久福利软件 | 亚洲欧美一区二区三区极速播放| 亚洲第一狼人社区| 成人少妇影院yyyy| 91麻豆精品国产无毒不卡在线观看| 国产欧美在线观看一区| 亚洲成va人在线观看| 成人免费看片app下载| 欧美美女一区二区三区| 欧美经典一区二区三区| 视频一区免费在线观看| 不卡一区在线观看| 日韩欧美激情在线| 亚洲在线免费播放| 成人激情免费网站| 精品欧美乱码久久久久久 | av综合在线播放| 777奇米成人网| 亚洲乱码一区二区三区在线观看| 国产专区综合网| 884aa四虎影成人精品一区| 亚洲同性gay激情无套| 国产又粗又猛又爽又黄91精品| 欧美午夜一区二区三区免费大片| 日本一区二区三区国色天香| 日韩精品免费专区| 色婷婷av一区二区三区大白胸| 久久夜色精品一区| 蜜臀国产一区二区三区在线播放| 91天堂素人约啪| 国产三区在线成人av| 另类专区欧美蜜桃臀第一页| 欧美三级日韩在线| 亚洲人吸女人奶水| caoporn国产精品| 中文字幕第一页久久| 精品一区二区av| 91精品国产综合久久精品app| 亚洲黄色尤物视频| 成人激情动漫在线观看| 国产午夜精品一区二区三区视频| 久久国产人妖系列| 9191久久久久久久久久久| 一区二区三区日本| 97久久超碰精品国产| 国产精品久久久久久一区二区三区| 国产一区二区三区精品视频| 制服视频三区第一页精品| 亚洲国产精品一区二区www在线| 色婷婷狠狠综合| 亚洲裸体xxx| 91成人网在线| 午夜欧美视频在线观看| 欧美日韩aaaaa| 日韩精品成人一区二区在线| 欧美精三区欧美精三区| 五月婷婷综合在线| 欧美丰满嫩嫩电影| 男男gaygay亚洲| 日韩区在线观看| 韩国精品久久久| 久久久综合精品| 成人av在线影院| 亚洲激情中文1区| 欧美日韩午夜在线视频| 青青草国产成人99久久| 精品成人一区二区三区四区| 国产最新精品免费| 亚洲国产精品高清| 色综合久久66| 午夜视频在线观看一区| 91精品久久久久久久91蜜桃 | 欧美性大战久久久| 亚洲国产成人porn| 日韩精品一区二区三区中文精品| 国产一区二区久久| 国产精品久久午夜| 欧美日韩中文字幕一区二区| 日本成人在线视频网站| 精品久久五月天| jvid福利写真一区二区三区| 一区二区三区精密机械公司| 欧美精品色综合| 国产一区在线观看麻豆| 中文字幕中文字幕一区二区| 色成年激情久久综合| 日韩 欧美一区二区三区| 久久久久免费观看| 色av一区二区| 久久国产视频网| 亚洲三级免费电影| 在线成人免费观看| 丁香亚洲综合激情啪啪综合| 亚洲一区二区偷拍精品| 日韩亚洲欧美在线| av在线这里只有精品| 午夜久久久久久久久久一区二区| 久久久亚洲午夜电影| 91麻豆免费视频| 日本欧美肥老太交大片| 国产欧美一区二区精品性色| 欧美亚洲日本一区| 国产一区二区三区四| 伊人性伊人情综合网| 欧美大片顶级少妇| 91麻豆自制传媒国产之光| 另类欧美日韩国产在线| 亚洲人一二三区| 日韩视频在线永久播放| 色综合中文字幕国产| 日韩国产欧美三级| 国产精品超碰97尤物18| 91精品国产综合久久久久久久久久 | 精品国产乱码久久久久久久久| 99精品视频免费在线观看| 麻豆精品在线播放| 亚洲一级片在线观看| 欧美极品xxx| 日韩一区二区三区在线视频| 91麻豆免费视频| 国产成人av电影在线| 天堂av在线一区| 亚洲欧美一区二区三区久本道91| 欧美xxxxxxxx| 欧美日韩一区久久| 91麻豆自制传媒国产之光| 国产成+人+日韩+欧美+亚洲| 日韩精品一级二级| 一区二区三区**美女毛片| 国产精品嫩草影院av蜜臀| 日韩欧美国产一区在线观看| 欧美午夜精品一区二区三区| 成人天堂资源www在线| 激情小说欧美图片| 亚洲国产色一区| 一区二区三区在线看| 国产精品久久久久一区二区三区共| 日韩精品最新网址| 欧美精品tushy高清| 色先锋aa成人| 91同城在线观看| av在线不卡网| 成人激情综合网站| 国产999精品久久久久久绿帽| 国模冰冰炮一区二区| 蜜臀av一区二区在线观看| 亚洲成人精品在线观看| 亚洲精品日韩综合观看成人91| 国产人伦精品一区二区| 久久精品视频免费| 久久久精品黄色| 国产亚洲精品7777| 国产女人aaa级久久久级 | 亚洲精品v日韩精品| 综合av第一页|