⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gtk-migrating-gtkrecentchooser.html

📁 最新gtk中文资料集
💻 HTML
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"><title>Migrating from EggRecent to GtkRecentChooser</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2"><link rel="start" href="index.html" title="GTK+ Reference Manual"><link rel="up" href="migrating.html" title="Part&#160;IV.&#160;Migrating from Previous Versions of GTK+"><link rel="prev" href="setting-the-page-flow.html" title="Setting the page flow"><link rel="next" href="gtkrecent-chooser.html" title="Displaying the Recently Used Documents"><meta name="generator" content="GTK-Doc V1.9 (XML mode)"><link rel="stylesheet" href="style.css" type="text/css"><link rel="part" href="gtk.html" title="Part&#160;I.&#160;GTK+ Overview"><link rel="part" href="gtkbase.html" title="Part&#160;II.&#160;GTK+ Core Reference"><link rel="part" href="gtkobjects.html" title="Part&#160;III.&#160;GTK+ Widgets and Objects"><link rel="chapter" href="ch01.html" title="Object Hierarchy"><link rel="chapter" href="ch02.html" title="Widget Gallery"><link rel="chapter" href="WindowWidgets.html" title="Windows"><link rel="chapter" href="DisplayWidgets.html" title="Display Widgets"><link rel="chapter" href="ButtonWidgets.html" title="Buttons and Toggles"><link rel="chapter" href="NumericEntry.html" title="Numeric/Text Data Entry"><link rel="chapter" href="TextWidgetObjects.html" title="Multiline Text Editor"><link rel="chapter" href="TreeWidgetObjects.html" title="Tree, List and Icon Grid Widgets"><link rel="chapter" href="MenusAndCombos.html" title="Menus, Combo Box, Toolbar"><link rel="chapter" href="Actions.html" title="Action-based menus and toolbars"><link rel="chapter" href="SelectorWidgets.html" title="Selectors (File/Font/Color/Input Devices)"><link rel="chapter" href="LayoutContainers.html" title="Layout Containers"><link rel="chapter" href="Ornaments.html" title="Ornaments"><link rel="chapter" href="ScrollingWidgets.html" title="Scrolling"><link rel="chapter" href="Printing.html" title="Printing"><link rel="chapter" href="MiscObjects.html" title="Miscellaneous"><link rel="chapter" href="AbstractObjects.html" title="Abstract Base Classes"><link rel="chapter" href="PlugSocket.html" title="Cross-process Embedding"><link rel="chapter" href="SpecialObjects.html" title="Special-purpose features"><link rel="chapter" href="RecentDocuments.html" title="Recently Used Documents"><link rel="chapter" href="Builder.html" title="Interface builder"><link rel="chapter" href="DeprecatedObjects.html" title="Deprecated"><link rel="part" href="migrating.html" title="Part&#160;IV.&#160;Migrating from Previous Versions of GTK+"><link rel="chapter" href="gtk-migrating-checklist.html" title="Migration Checklist"><link rel="chapter" href="gtk-migrating-GtkFileChooser.html" title="Migrating from GtkFileSelection to GtkFileChooser"><link rel="chapter" href="gtk-migrating-GtkAction.html" title="Migrating from old menu and toolbar systems to GtkAction"><link rel="chapter" href="gtk-migrating-GtkComboBox.html" title="Migrating from GtkOptionMenu and GtkCombo to GtkComboBox and GtkComboBoxEntry"><link rel="chapter" href="gtk-migrating-GtkIconView.html" title="Migrating from GnomeIconList to GtkIconView"><link rel="chapter" href="gtk-migrating-GtkAboutDialog.html" title="Migrating from GnomeAbout to GtkAboutDialog"><link rel="chapter" href="gtk-migrating-GtkColorButton.html" title="Migrating from GnomeColorPicker to GtkColorButton"><link rel="chapter" href="gtk-migrating-GtkAssistant.html" title="Migrating from GnomeDruid to GtkAssistant"><link rel="chapter" href="gtk-migrating-GtkRecentChooser.html" title="Migrating from EggRecent to GtkRecentChooser"><link rel="chapter" href="gtk-migrating-GtkLinkButton.html" title="Migrating from GnomeHRef to GtkLinkButton"><link rel="chapter" href="gtk-migrating-GtkBuilder.html" title="Migrating from libglade to GtkBuilder"><link rel="chapter" href="gtk-migrating-tooltips.html" title="Migrating from GtkTooltips to GtkTooltip"><link rel="part" href="pt05.html" title="Part&#160;V.&#160;GTK+ Tools"><link rel="glossary" href="glossary.html" title="Glossary"><link rel="index" href="ix01.html" title="Index"><link rel="index" href="ix02.html" title="Index of deprecated symbols"><link rel="index" href="ix03.html" title="Index of new symbols in 2.2"><link rel="index" href="ix04.html" title="Index of new symbols in 2.4"><link rel="index" href="ix05.html" title="Index of new symbols in 2.6"><link rel="index" href="ix06.html" title="Index of new symbols in 2.8"><link rel="index" href="ix07.html" title="Index of new symbols in 2.10"><link rel="index" href="ix08.html" title="Index of new symbols in 2.12"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="setting-the-page-flow.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="u" href="migrating.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td><th width="100%" align="center">GTK+ Reference Manual</th><td><a accesskey="n" href="gtkrecent-chooser.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td></tr></table><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="gtk-migrating-GtkRecentChooser"></a>Migrating from EggRecent to GtkRecentChooser</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Emmanuele</span></h3><div class="affiliation"><div class="address"><p><br>	&#160;&#160;<code class="email">&lt;<a class="email" href="mailto:ebassigmail.com">ebassi<em class="parameter"><code>gmail.com</code></em></a>&gt;</code><br>	</p></div></div></div></div></div></div><div class="toc"><dl><dt><span class="section"><a href="gtk-migrating-GtkRecentChooser.html#gtkrecent-manager">Managing the Recently Used Documents</a></span></dt><dt><span class="section"><a href="gtkrecent-chooser.html">Displaying the Recently Used Documents</a></span></dt><dt><span class="section"><a href="gtkrecent-advanced.html">Advanced usage</a></span></dt></dl></div><p>    Since version 2.10, GTK+ provides a way of handling the recently used    documents. It is similar to the code that has lived inside the libegg    library and has been incorporated by many applications. The GTK+ version    aims to completely replace that code, and offers many distinctive features    that improve the registration and visualization of the recently used    documents, such as:  </p><p>    </p><div class="itemizedlist"><ul type="disc"><li><p>        Better performances while reading and writing the list of recently used	files      </p></li><li><p>        More meta-data available for each recent document, like the	applications that have registered a document inside the list, the last	time and the number of times the same application did register a	document inside the list, an optional user readable name and	description of the document      </p></li><li><p>        Improved the ability to sort and filter the documents, also using	custom sorting and filtering functions      </p></li><li><p>        New widgets for displaying the list, and better integration with	current <a class="link" href="GtkFileChooser.html" title="GtkFileChooser"><span class="type">GtkFileChooser</span></a> and <a class="link" href="GtkUIManager.html" title="GtkUIManager"><span class="type">GtkUIManager</span></a> widgets      </p></li></ul></div><p>  </p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="gtkrecent-manager"></a>Managing the Recently Used Documents</h2></div></div></div><p>      <a class="link" href="GtkRecentManager.html" title="GtkRecentManager"><span class="type">GtkRecentManager</span></a> is used to manage the Recently Used Documents. To      create a new <a class="link" href="GtkRecentManager.html" title="GtkRecentManager"><span class="type">GtkRecentManager</span></a>, you simply call <a class="link" href="GtkRecentManager.html#gtk-recent-manager-new"><code class="function">gtk_recent_manager_new()</code></a>.      Like the <span class="structname">EggRecentModel</span> inside EggRecent, the      <a class="link" href="GtkRecentManager.html" title="GtkRecentManager"><span class="type">GtkRecentManager</span></a> loads the list of the recent documents and notifies      you of changes inside the list.    </p><p>      Usually, instead of creating a new <a class="link" href="GtkRecentManager.html" title="GtkRecentManager"><span class="type">GtkRecentManager</span></a> each time you      need it, you'll want to use the <a class="link" href="GtkRecentManager.html#gtk-recent-manager-get-default"><code class="function">gtk_recent_manager_get_default()</code></a>      function.    </p><p>      To add a document to the list, you can use <a class="link" href="GtkRecentManager.html#gtk-recent-manager-add-item"><code class="function">gtk_recent_manager_add_item()</code></a>,      like:      </p><div class="informalexample"><pre class="programlisting">        GtkRecentManager *manager;	manager = gtk_recent_manager_new ();	if (!gtk_recent_manager_add_item (manager, document_uri))	  {	    /* warn about the error */	  }		g_object_unref (manager);      </pre></div><p>      The <a class="link" href="GtkRecentManager.html#gtk-recent-manager-add-item"><code class="function">gtk_recent_manager_add_item()</code></a> function will try and guess some of the      meta-data associated to a URI. If you know some of meta-data about the      document yourself, set the desired fields of a <a class="link" href="GtkRecentManager.html#GtkRecentData"><span class="type">GtkRecentData</span></a> structure      and pass it to the <a class="link" href="GtkRecentManager.html#gtk-recent-manager-add-full"><code class="function">gtk_recent_manager_add_full()</code></a> function instead:      </p><div class="informalexample"><pre class="programlisting">        GtkRecentManager *manager;        GtkRecentData *recent_data;	manager = gtk_recent_manager_new ();		recent_data = g_new0 (GtkRecentData, 1);	/* the user visible name of the document (maybe its title); should	 * be preferred when displaying the item into the list	 */        recent_data-&gt;display_name = document_name;		/* the MIME type is mandatory */	recent_data-&gt;mime_type = document_mime_type;	/* the name of the application that is registering the document	 * (also mandatory); usually, the same name you used with	 * the g_set_application_name () function.	 */	recent_data-&amp;app_name = APP_NAME;	/* the command to open a file; the %u string will be automagically	 * expanded to the document's URI when getting the application's	 * command line from the GtkRecentInfo object with	 * gtk_recent_info_get_application_info ()	 */	recent_data-&amp;app_exec = g_strjoin (" ", g_get_prgname (), "--open-file", "%u", NULL);	if (!gtk_recent_manager_add_full (manager, document_uri, recent_data))	  {	    /* warn about the error */	  }	g_free (recent_data-&gt;app_exec);	g_free (recent_data);	g_object_unref (manager);      </pre></div><p>    </p><p>      Getting the list of items is also similar to      <span class="structname">EggRecentModel</span>; the GtkRecentInfo data is      allocated at look up time in order not to waste memory keeping it      around, so you must remember to free the data inside the list and then      the list itself when you are done using it:      </p><div class="informalexample"><pre class="programlisting">        GtkRecentManager *manager;        GList *recent_items, *l;	manager = gtk_recent_manager_get_default();	recent_items = gtk_recent_manager_get_items (manager);	for (l = recent_items; l != NULL; l = l-&gt;next)	  {	    GtkRecentInfo *recent_info = l-&gt;data;	    do_something_with_the_item (recent_info);	  }		/* free everything and the list */	g_list_foreach (recent_items, (GFunc) gtk_recent_info_unref, NULL);	g_list_free (recent_items);      </pre></div><p>      You can also look up a single item:      </p><div class="informalexample"><pre class="programlisting">        GtkRecentInfo *recent_info;	GError *error = NULL;	recent_info = gtk_recent_manager_lookup_item (manager, document_uri, &amp;error);	if (error)	  {	    display_error (error);	    g_error_free (error);	  }	else	  {	    do_something_with_the_item (recent_info);	    gtk_recent_info_unref (recent_info);	  }      </pre></div><p>      The <a class="link" href="GtkRecentManager.html#GtkRecentInfo"><span class="type">GtkRecentInfo</span></a> is a reference counted boxed type, and it holds all      the meta-data of a recently used document, like its display name, its      description, the list of each application that has registered the      document or the list of groups to which the document belong.    </p></div></div></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -