add new sigc++2 directory
[ardour.git] / libs / gtkmm2 / gtk / gtkmm / recentchooser.h
1 // -*- c++ -*-
2 // Generated by gtkmmproc -- DO NOT MODIFY!
3 #ifndef _GTKMM_RECENTCHOOSER_H
4 #define _GTKMM_RECENTCHOOSER_H
5
6
7 #include <glibmm.h>
8
9 /* Copyright (C) 2006 The gtkmm Development Team
10  *
11  * This library is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU Library General Public
13  * License as published by the Free Software Foundation; either
14  * version 2 of the License, or (at your option) any later version.
15  *
16  * This library is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19  * Library General Public License for more details.
20  *
21  * You should have received a copy of the GNU Library General Public
22  * License along with this library; if not, write to the Free
23  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24  */
25
26 #include <gtk/gtkrecentchooser.h>
27 #include <glibmm/interface.h>
28 #include <gtkmm/recentinfo.h>
29 #include <gtkmm/recentfilter.h>
30 #include <gtkmm/recentmanager.h>
31
32
33 #ifndef DOXYGEN_SHOULD_SKIP_THIS
34 typedef struct _GtkRecentChooser GtkRecentChooser;
35 typedef struct _GtkRecentChooserClass GtkRecentChooserClass;
36 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
37
38
39 namespace Gtk
40 { class RecentChooser_Class; } // namespace Gtk
41 namespace Gtk
42 {
43
44 /** @addtogroup gtkmmEnums Enums and Flags */
45
46 /**
47  * @ingroup gtkmmEnums
48  */
49 enum RecentSortType
50 {
51   RECENT_SORT_NONE,
52   RECENT_SORT_MRU,
53   RECENT_SORT_LRU,
54   RECENT_SORT_CUSTOM
55 };
56
57 } // namespace Gtk
58
59
60 #ifndef DOXYGEN_SHOULD_SKIP_THIS
61 namespace Glib
62 {
63
64 template <>
65 class Value<Gtk::RecentSortType> : public Glib::Value_Enum<Gtk::RecentSortType>
66 {
67 public:
68   static GType value_type() G_GNUC_CONST;
69 };
70
71 } // namespace Glib
72 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
73
74
75 namespace Gtk
76 {
77
78
79 /** Exception class for Gtk::RecentChooser errors.
80  */
81 class RecentChooserError : public Glib::Error
82 {
83 public:
84   enum Code
85   {
86     NOT_FOUND,
87     INVALID_URI
88   };
89
90   RecentChooserError(Code error_code, const Glib::ustring& error_message);
91   explicit RecentChooserError(GError* gobject);
92   Code code() const;
93
94 #ifndef DOXYGEN_SHOULD_SKIP_THIS
95 private:
96
97 #ifdef GLIBMM_EXCEPTIONS_ENABLED
98   static void throw_func(GError* gobject);
99 #else
100   //When not using exceptions, we just pass the Exception object around without throwing it:
101   static std::auto_ptr<Glib::Error> throw_func(GError* gobject);
102 #endif //GLIBMM_EXCEPTIONS_ENABLED
103
104   friend void wrap_init(); // uses throw_func()
105 #endif
106 };
107
108 } // namespace Gtk
109
110 #ifndef DOXYGEN_SHOULD_SKIP_THIS
111 namespace Glib
112 {
113
114 template <>
115 class Value<Gtk::RecentChooserError::Code> : public Glib::Value_Enum<Gtk::RecentChooserError::Code>
116 {
117 public:
118   static GType value_type() G_GNUC_CONST;
119 };
120
121 } // namespace Glib
122 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
123
124
125 namespace Gtk
126 {
127
128
129 /** RecentChooser is an interface that can be implemented by widgets
130  * displaying the list of recently used files.  In GTK+, the main objects
131  * that implement this interface are RecentChooserWidget, RecentChooserDialog
132  * and RecentChooserMenu.
133  *
134  * @newin2p10
135  *
136  * @ingroup RecentFiles
137  */
138
139 class RecentChooser : public Glib::Interface
140 {
141   
142 #ifndef DOXYGEN_SHOULD_SKIP_THIS
143
144 public:
145   typedef RecentChooser CppObjectType;
146   typedef RecentChooser_Class CppClassType;
147   typedef GtkRecentChooser BaseObjectType;
148   typedef GtkRecentChooserIface BaseClassType;
149
150 private:
151   friend class RecentChooser_Class;
152   static CppClassType recentchooser_class_;
153
154   // noncopyable
155   RecentChooser(const RecentChooser&);
156   RecentChooser& operator=(const RecentChooser&);
157
158 protected:
159   RecentChooser(); // you must derive from this class
160
161 public:
162   // This is public so that C++ wrapper instances can be
163   // created for C instances of unwrapped types.
164   // For instance, if an unexpected C type implements the C interface. 
165   explicit RecentChooser(GtkRecentChooser* castitem);
166
167 protected:
168 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
169
170 public:
171   virtual ~RecentChooser();
172
173   static void add_interface(GType gtype_implementer);
174
175 #ifndef DOXYGEN_SHOULD_SKIP_THIS
176   static GType get_type()      G_GNUC_CONST;
177   static GType get_base_type() G_GNUC_CONST;
178 #endif
179
180   ///Provides access to the underlying C GObject.
181   GtkRecentChooser*       gobj()       { return reinterpret_cast<GtkRecentChooser*>(gobject_); }
182
183   ///Provides access to the underlying C GObject.  
184   const GtkRecentChooser* gobj() const { return reinterpret_cast<GtkRecentChooser*>(gobject_); }
185
186 private:
187
188 public:
189
190   
191   /** Whether to show recently used resources marked registered as private.
192    * 
193    * @newin2p10
194    * @param show_private <tt>true</tt> to show private items, <tt>false</tt> otherwise.
195    */
196   void set_show_private(bool show_private = true);
197   
198   /** Return value: <tt>true</tt> if the recent chooser should show private items,
199    * @return <tt>true</tt> if the recent chooser should show private items,
200    * <tt>false</tt> otherwise.
201    * 
202    * @newin2p10.
203    */
204   bool get_show_private() const;
205   
206   /** Sets whether @a chooser  should display the recently used resources that
207    * it didn't find.  This only applies to local resources.
208    * 
209    * @newin2p10
210    * @param show_not_found Whether to show the local items we didn't find.
211    */
212   void set_show_not_found(bool show_not_found = true);
213   
214   /** Retrieves whether @a chooser  should show the recently used resources that
215    * were not found.
216    * @return <tt>true</tt> if the resources not found should be displayed, and
217    * <tt>false</tt> otheriwse.
218    * 
219    * @newin2p10.
220    */
221   bool get_show_not_found() const;
222   
223   /** Sets whether @a chooser  can select multiple items.
224    * 
225    * @newin2p10
226    * @param select_multiple <tt>true</tt> if @a chooser  can select more than one item.
227    */
228   void set_select_multiple(bool select_multiple = true);
229   
230   /** Gets whether @a chooser  can select multiple items.
231    * @return <tt>true</tt> if @a chooser  can select more than one item.
232    * 
233    * @newin2p10.
234    */
235   bool get_select_multiple() const;
236   
237   /** Sets the number of items that should be returned by
238    * get_items() and get_uris().
239    * 
240    * @newin2p10
241    * @param limit A positive integer, or -1 for all items.
242    */
243   void set_limit(int limit);
244   void unset_limit();
245   
246   /** Gets the number of items returned by get_items()
247    * and get_uris().
248    * @return A positive integer, or -1 meaning that all items are
249    * returned.
250    * 
251    * @newin2p10.
252    */
253   int get_limit() const;
254   
255   /** Sets whether only local resources, that is resources using the file:// URI
256    * scheme, should be shown in the recently used resources selector.  If
257    *  @a local_only  is <tt>true</tt> (the default) then the shown resources are guaranteed
258    * to be accessible through the operating system native file system.
259    * 
260    * @newin2p10
261    * @param local_only <tt>true</tt> if only local files can be shown.
262    */
263   void set_local_only(bool local_only = true);
264   
265   /** Gets whether only local resources should be shown in the recently used
266    * resources selector.  See set_local_only()
267    * @return <tt>true</tt> if only local resources should be shown.
268    * 
269    * @newin2p10.
270    */
271   bool get_local_only() const;
272   
273   /** Sets whether to show a tooltips on the widget.
274    * 
275    * @newin2p10
276    * @param show_tips <tt>true</tt> if tooltips should be shown.
277    */
278   void set_show_tips(bool show_tips = true);
279   
280   /** Gets whether @a chooser  should display tooltips.
281    * @return <tt>true</tt> if the recent chooser should show tooltips,
282    * <tt>false</tt> otherwise.
283    * 
284    * @newin2p10.
285    */
286   bool get_show_tips() const;
287
288   // Deprecated in GTK+ 2.12. murrayc:
289   
290
291   /** Sets whether @a chooser  should show an icon near the resource when
292    * displaying it.
293    * 
294    * @newin2p10
295    * @param show_icons Whether to show an icon near the resource.
296    */
297   void set_show_icons(bool show_icons = true);
298   
299   /** Retrieves whether @a chooser  should show an icon near the resource.
300    * @return <tt>true</tt> if the icons should be displayed, <tt>false</tt> otherwise.
301    * 
302    * @newin2p10.
303    */
304   bool get_show_icons() const;
305   
306   /** Changes the sorting order of the recently used resources list displayed by
307    *  @a chooser .
308    * 
309    * @newin2p10
310    * @param sort_type Sort order that the chooser should use.
311    */
312   void set_sort_type(RecentSortType sort_type);
313   
314   /** Gets the value set by set_sort_type().
315    * @return The sorting order of the @a chooser .
316    * 
317    * @newin2p10.
318    */
319   RecentSortType get_sort_type() const;
320
321
322   /** This callback should return -1 if b compares before a, 0 if they compare
323    * equal and 1 if a compares after b.
324    * For instance, int on_sort_compare(const Glib::RefPtr<Gtk::RecentInfo>& a, const Gtk::RecentInfo& b);
325    */
326   typedef sigc::slot<int, const Glib::RefPtr<RecentInfo>&, const Glib::RefPtr<RecentInfo>&> SlotCompare;
327   
328
329   /** Sets the comparison function used when sorting the list of recently
330    * used resources and the sort type is #RECENT_SORT_CUSTOM.
331    */
332   void set_sort_func(const SlotCompare& slot);
333
334   // TODO: Return type should be void since it will never return false but
335   // throwing RecentChooserError instead
336   
337   /** Sets @a uri  as the current URI for @a chooser .
338    * @param uri A URI.
339    * @param error Return location for a G::Error, or <tt>0</tt>.
340    * @return <tt>true</tt> if the URI was found.
341    * 
342    * @newin2p10.
343    */
344 #ifdef GLIBMM_EXCEPTIONS_ENABLED
345   bool set_current_uri(const Glib::ustring& uri);
346 #else
347   bool set_current_uri(const Glib::ustring& uri, std::auto_ptr<Glib::Error>& error);
348 #endif //GLIBMM_EXCEPTIONS_ENABLED
349
350   
351   /** Gets the URI currently selected by @a chooser .
352    * @return A newly allocated string holding a URI.
353    * 
354    * @newin2p10.
355    */
356   Glib::ustring get_current_uri() const;
357   
358   /** Gets the Gtk::RecentInfo currently selected by @a chooser .
359    * @return A Gtk::RecentInfo.  Use gtk_recent_info_unref() when
360    * when you have finished using it.
361    * 
362    * @newin2p10.
363    */
364   Glib::RefPtr<RecentInfo> get_current_item();
365   
366   /** Gets the Gtk::RecentInfo currently selected by @a chooser .
367    * @return A Gtk::RecentInfo.  Use gtk_recent_info_unref() when
368    * when you have finished using it.
369    * 
370    * @newin2p10.
371    */
372   Glib::RefPtr<const RecentInfo> get_current_item() const;
373   // TODO: Same here
374   
375   /** Selects @a uri  inside @a chooser .
376    * @param uri A URI.
377    * @param error Return location for a G::Error, or <tt>0</tt>.
378    * @return <tt>true</tt> if @a uri  was found.
379    * 
380    * @newin2p10.
381    */
382 #ifdef GLIBMM_EXCEPTIONS_ENABLED
383   bool select_uri(const Glib::ustring& uri);
384 #else
385   bool select_uri(const Glib::ustring& uri, std::auto_ptr<Glib::Error>& error);
386 #endif //GLIBMM_EXCEPTIONS_ENABLED
387
388   
389   /** Unselects @a uri  inside @a chooser .
390    * 
391    * @newin2p10
392    * @param uri A URI.
393    */
394   void unselect_uri(const Glib::ustring& uri);
395   
396   /** Selects all the items inside @a chooser , if the @a chooser  supports
397    * multiple selection.
398    * 
399    * @newin2p10
400    */
401   void select_all();
402   
403   /** Unselects all the items inside @a chooser .
404    * 
405    * @newin2p10
406    */
407   void unselect_all();
408
409   typedef Glib::ListHandle<RecentInfo, RecentInfoTraits> ListHandle_RecentInfos;
410   
411
412   /** Gets the list of recently used resources in form of Gtk::RecentInfo objects.
413    * 
414    * The return value of this function is affected by the "sort-type" and
415    * "limit" properties of @a chooser .
416    * @return A newly allocated list of Gtk::RecentInfo objects.  You should
417    * use gtk_recent_info_unref() on every item of the list, and then free
418    * the list itself using Glib::list_free().
419    * 
420    * @newin2p10.
421    */
422   ListHandle_RecentInfos get_items() const;
423
424   /** Gets the URI of the recently used resources.
425    *
426    * The return value of this function is affected by the "sort-type" and
427    * "limit" properties of the recent chooser.
428    */
429   Glib::StringArrayHandle get_uris() const;
430   
431
432   /** Adds @a filter  to the list of Gtk::RecentFilter objects held by @a chooser .
433    * 
434    * If no previous filter objects were defined, this function will call
435    * set_filter().
436    * 
437    * @newin2p10
438    * @param filter A Gtk::RecentFilter.
439    */
440   void add_filter(const RecentFilter& filter);
441   
442   /** Removes @a filter  from the list of Gtk::RecentFilter objects held by @a chooser .
443    * 
444    * @newin2p10
445    * @param filter A Gtk::RecentFilter.
446    */
447   void remove_filter(const RecentFilter& filter);
448   
449   /** Gets the Gtk::RecentFilter objects held by @a chooser .
450    * @return A singly linked list of Gtk::RecentFilter objects.  You
451    * should just free the returned list using Glib::slist_free().
452    * 
453    * @newin2p10.
454    */
455   Glib::SListHandle<RecentFilter*> list_filters();
456   
457   /** Gets the Gtk::RecentFilter objects held by @a chooser .
458    * @return A singly linked list of Gtk::RecentFilter objects.  You
459    * should just free the returned list using Glib::slist_free().
460    * 
461    * @newin2p10.
462    */
463   Glib::SListHandle<const RecentFilter*> list_filters() const;
464   
465   /** Sets @a filter  as the current Gtk::RecentFilter object used by @a chooser 
466    * to affect the displayed recently used resources.
467    * 
468    * @newin2p10
469    * @param filter A Gtk::RecentFilter.
470    */
471   void set_filter(const RecentFilter& filter);
472   
473   /** Gets the Gtk::RecentFilter object currently used by @a chooser  to affect
474    * the display of the recently used resources.
475    * @return A Gtk::RecentFilter object.
476    * 
477    * @newin2p10.
478    */
479   RecentFilter* get_filter();
480   
481   /** Gets the Gtk::RecentFilter object currently used by @a chooser  to affect
482    * the display of the recently used resources.
483    * @return A Gtk::RecentFilter object.
484    * 
485    * @newin2p10.
486    */
487   const RecentFilter* get_filter() const;
488
489   /** This signal is emitted when there is a change in the set of
490    * selected recently used resources.  This can happen when a user
491    * modifies the selection with the mouse or the keyboard, or when
492    * explicitely calling functions to change the selection.
493    *
494    * @par Prototype:
495    * <tt>void on_my_%selection_changed()</tt>
496    */
497
498   Glib::SignalProxy0< void > signal_selection_changed();
499
500
501   /** This signal is emitted when the user "activates" a recent item
502    * in the recent chooser.  This can happen by double-clicking on an item
503    * in the recently used resources list, or by pressing
504    * <keycap>Enter</keycap>.
505    *
506    * @par Prototype:
507    * <tt>void on_my_%item_activated()</tt>
508    */
509
510   Glib::SignalProxy0< void > signal_item_activated();
511
512
513   #ifdef GLIBMM_PROPERTIES_ENABLED
514 /** 
515    *
516    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
517    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
518    * the value of the property changes.
519    */
520   Glib::PropertyProxy_ReadOnly< Glib::RefPtr<RecentManager> > property_recent_manager() const;
521 #endif //#GLIBMM_PROPERTIES_ENABLED
522
523
524   #ifdef GLIBMM_PROPERTIES_ENABLED
525 /** 
526    *
527    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
528    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
529    * the value of the property changes.
530    */
531   Glib::PropertyProxy<bool> property_show_private() ;
532 #endif //#GLIBMM_PROPERTIES_ENABLED
533
534 #ifdef GLIBMM_PROPERTIES_ENABLED
535 /** 
536    *
537    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
538    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
539    * the value of the property changes.
540    */
541   Glib::PropertyProxy_ReadOnly<bool> property_show_private() const;
542 #endif //#GLIBMM_PROPERTIES_ENABLED
543
544   #ifdef GLIBMM_PROPERTIES_ENABLED
545 /** 
546    *
547    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
548    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
549    * the value of the property changes.
550    */
551   Glib::PropertyProxy<bool> property_show_tips() ;
552 #endif //#GLIBMM_PROPERTIES_ENABLED
553
554 #ifdef GLIBMM_PROPERTIES_ENABLED
555 /** 
556    *
557    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
558    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
559    * the value of the property changes.
560    */
561   Glib::PropertyProxy_ReadOnly<bool> property_show_tips() const;
562 #endif //#GLIBMM_PROPERTIES_ENABLED
563
564   #ifdef GLIBMM_PROPERTIES_ENABLED
565 /** 
566    *
567    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
568    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
569    * the value of the property changes.
570    */
571   Glib::PropertyProxy<bool> property_show_icons() ;
572 #endif //#GLIBMM_PROPERTIES_ENABLED
573
574 #ifdef GLIBMM_PROPERTIES_ENABLED
575 /** 
576    *
577    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
578    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
579    * the value of the property changes.
580    */
581   Glib::PropertyProxy_ReadOnly<bool> property_show_icons() const;
582 #endif //#GLIBMM_PROPERTIES_ENABLED
583
584   #ifdef GLIBMM_PROPERTIES_ENABLED
585 /** 
586    *
587    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
588    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
589    * the value of the property changes.
590    */
591   Glib::PropertyProxy<bool> property_show_not_found() ;
592 #endif //#GLIBMM_PROPERTIES_ENABLED
593
594 #ifdef GLIBMM_PROPERTIES_ENABLED
595 /** 
596    *
597    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
598    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
599    * the value of the property changes.
600    */
601   Glib::PropertyProxy_ReadOnly<bool> property_show_not_found() const;
602 #endif //#GLIBMM_PROPERTIES_ENABLED
603
604   #ifdef GLIBMM_PROPERTIES_ENABLED
605 /** 
606    *
607    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
608    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
609    * the value of the property changes.
610    */
611   Glib::PropertyProxy<bool> property_select_multiple() ;
612 #endif //#GLIBMM_PROPERTIES_ENABLED
613
614 #ifdef GLIBMM_PROPERTIES_ENABLED
615 /** 
616    *
617    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
618    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
619    * the value of the property changes.
620    */
621   Glib::PropertyProxy_ReadOnly<bool> property_select_multiple() const;
622 #endif //#GLIBMM_PROPERTIES_ENABLED
623
624   #ifdef GLIBMM_PROPERTIES_ENABLED
625 /** 
626    *
627    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
628    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
629    * the value of the property changes.
630    */
631   Glib::PropertyProxy<bool> property_local_only() ;
632 #endif //#GLIBMM_PROPERTIES_ENABLED
633
634 #ifdef GLIBMM_PROPERTIES_ENABLED
635 /** 
636    *
637    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
638    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
639    * the value of the property changes.
640    */
641   Glib::PropertyProxy_ReadOnly<bool> property_local_only() const;
642 #endif //#GLIBMM_PROPERTIES_ENABLED
643
644   #ifdef GLIBMM_PROPERTIES_ENABLED
645 /** 
646    *
647    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
648    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
649    * the value of the property changes.
650    */
651   Glib::PropertyProxy<int> property_limit() ;
652 #endif //#GLIBMM_PROPERTIES_ENABLED
653
654 #ifdef GLIBMM_PROPERTIES_ENABLED
655 /** 
656    *
657    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
658    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
659    * the value of the property changes.
660    */
661   Glib::PropertyProxy_ReadOnly<int> property_limit() const;
662 #endif //#GLIBMM_PROPERTIES_ENABLED
663
664   #ifdef GLIBMM_PROPERTIES_ENABLED
665 /** 
666    *
667    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
668    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
669    * the value of the property changes.
670    */
671   Glib::PropertyProxy<RecentSortType> property_sort_type() ;
672 #endif //#GLIBMM_PROPERTIES_ENABLED
673
674 #ifdef GLIBMM_PROPERTIES_ENABLED
675 /** 
676    *
677    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
678    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
679    * the value of the property changes.
680    */
681   Glib::PropertyProxy_ReadOnly<RecentSortType> property_sort_type() const;
682 #endif //#GLIBMM_PROPERTIES_ENABLED
683
684   #ifdef GLIBMM_PROPERTIES_ENABLED
685 /** 
686    *
687    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
688    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
689    * the value of the property changes.
690    */
691   Glib::PropertyProxy<RecentFilter*> property_filter() ;
692 #endif //#GLIBMM_PROPERTIES_ENABLED
693
694 #ifdef GLIBMM_PROPERTIES_ENABLED
695 /** 
696    *
697    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
698    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
699    * the value of the property changes.
700    */
701   Glib::PropertyProxy_ReadOnly<RecentFilter*> property_filter() const;
702 #endif //#GLIBMM_PROPERTIES_ENABLED
703
704
705 protected:
706
707   // As in editable.hg
708   
709
710   // TODO: How to wrap those vfuncs?
711
712   //__CONVERSION(`ListHandle_RecentInfos', `GList*', `($3).data()')
713   //__CONVERSION(`Glib::SListHandle<RecentFilter*>', `GSList*', `($3).data()')
714
715   //_WRAP_VFUNC(bool set_current_uri(const Glib::ustring& uri), "set_current_uri", errthrow)
716   #ifdef GLIBMM_VFUNCS_ENABLED
717   virtual Glib::ustring get_current_uri_vfunc() const;
718 #endif //GLIBMM_VFUNCS_ENABLED
719
720   //_WRAP_VFUNC(bool select_uri(const Glib::ustring& uri), "select_uri", errthrow)
721   #ifdef GLIBMM_VFUNCS_ENABLED
722   virtual void unselect_uri_vfunc(const Glib::ustring& uri);
723 #endif //GLIBMM_VFUNCS_ENABLED
724
725   #ifdef GLIBMM_VFUNCS_ENABLED
726   virtual void select_all_vfunc();
727 #endif //GLIBMM_VFUNCS_ENABLED
728
729   #ifdef GLIBMM_VFUNCS_ENABLED
730   virtual void unselect_all_vfunc();
731 #endif //GLIBMM_VFUNCS_ENABLED
732
733   //_WRAP_VFUNC(ArrayHandle_RecentInfos get_items() const, "get_items")
734   #ifdef GLIBMM_VFUNCS_ENABLED
735   virtual Glib::RefPtr<RecentManager> get_recent_manager_vfunc();
736 #endif //GLIBMM_VFUNCS_ENABLED
737
738   #ifdef GLIBMM_VFUNCS_ENABLED
739   virtual void add_filter_vfunc(const RecentFilter& filter);
740 #endif //GLIBMM_VFUNCS_ENABLED
741
742   #ifdef GLIBMM_VFUNCS_ENABLED
743   virtual void remove_filter_vfunc(const RecentFilter& filter);
744 #endif //GLIBMM_VFUNCS_ENABLED
745
746   //_WRAP_VFUNC(Glib::SListHandle<RecentFilter*> list_filters(), "list_filters")
747   //_WRAP_VFUNC(void set_sort_func(const SlotCompare& slot), "set_sort_func")
748
749
750 public:
751
752 public:
753   //C++ methods used to invoke GTK+ virtual functions:
754 #ifdef GLIBMM_VFUNCS_ENABLED
755 #endif //GLIBMM_VFUNCS_ENABLED
756
757 protected:
758   //GTK+ Virtual Functions (override these to change behaviour):
759 #ifdef GLIBMM_VFUNCS_ENABLED
760 #endif //GLIBMM_VFUNCS_ENABLED
761
762   //Default Signal Handlers::
763 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
764 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
765
766
767 };
768  
769 } // namespace Gtk
770
771
772 namespace Glib
773 {
774   /** A Glib::wrap() method for this object.
775    * 
776    * @param object The C instance.
777    * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
778    * @result A C++ instance that wraps this C instance.
779    *
780    * @relates Gtk::RecentChooser
781    */
782   Glib::RefPtr<Gtk::RecentChooser> wrap(GtkRecentChooser* object, bool take_copy = false);
783
784 } // namespace Glib
785
786
787 #endif /* _GTKMM_RECENTCHOOSER_H */
788