Changeset 519

Show
Ignore:
Timestamp:
11/10/07 22:11:26 (10 months ago)
Author:
kickback
Message:

sweep: add Open Recent menu using GtkRecentManager?. auto detects required gtk 2.10.0

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • sweep/trunk/src/callbacks.c

    r285 r519  
    4848#include "print.h" 
    4949#include "record.h" 
     50#include "file_dialogs.h" 
    5051 
    5152/* 
     
    10291030  gtk_widget_set_usize(GTK_WIDGET(GTK_ENTRY(widget)),  PANGO_PIXELS (ink_rect.width), -1); 
    10301031} 
     1032 
     1033#if GTK_CHECK_VERSION (2, 10, 0) 
     1034 
     1035void 
     1036recent_chooser_menu_activated_cb(GtkRecentChooser *chooser, 
     1037                                 gpointer          user_data) 
     1038{ 
     1039  gchar *uri = NULL; 
     1040  gchar *path = NULL; 
     1041 
     1042  uri = gtk_recent_chooser_get_current_uri(chooser); 
     1043  path = g_filename_from_uri(uri, NULL, NULL); 
     1044  sample_load(path); 
     1045 
     1046  g_free (path); 
     1047} 
     1048 
     1049#endif 
  • sweep/trunk/src/callbacks.h

    r285 r519  
    291291                                                        GtkStyle *previous_style, 
    292292                            gpointer user_data); 
     293#if GTK_CHECK_VERSION(2, 10, 0) 
     294void 
     295recent_chooser_menu_activated_cb(GtkRecentChooser *chooser, 
     296                                 gpointer          user_data); 
     297#endif 
    293298 
    294299#endif /* __CALLBACKS_H__ */ 
  • sweep/trunk/src/file_dialogs.c

    r371 r519  
    241241    sample = sndfile_sample_load (pathname, TRUE);   
    242242   
     243  if (sample != NULL) 
     244        recent_manager_add_item (pathname); 
     245         
    243246  return sample; 
    244247} 
  • sweep/trunk/src/interface.c

    r435 r519  
    5252GtkStyle * style_red; 
    5353 
    54  
    55 void init_accels (void) 
     54#if GTK_CHECK_VERSION (2, 10, 0) 
     55GtkRecentManager *recent_manager = NULL; 
     56#endif 
     57 
     58 
     59static void 
     60init_recent_manager(void) 
     61
     62#if GTK_CHECK_VERSION (2, 10, 0) 
     63 
     64  recent_manager = gtk_recent_manager_get_default(); 
     65     
     66  /* good idea / bad idea? */ 
     67  if (!recent_manager) 
     68    recent_manager = gtk_recent_manager_new(); 
     69     
     70#endif     
     71
     72 
     73void 
     74recent_manager_add_item (gchar *path) 
     75
     76#if GTK_CHECK_VERSION (2, 10, 0) 
     77 
     78  gchar *uri; 
     79     
     80  //uri = g_strconcat("file:/", path, NULL); 
     81  uri = g_filename_to_uri(path, NULL, NULL); 
     82     
     83  if (recent_manager != NULL) 
     84    gtk_recent_manager_add_item (recent_manager, uri);   
     85     
     86  g_free(uri); 
     87#endif     
     88
     89 
     90static void 
     91init_accels (void) 
    5692{ 
    5793  gchar * accels_path; 
     
    6399} 
    64100 
    65 void save_accels (void) 
     101void  
     102save_accels (void) 
    66103{ 
    67104  gchar * accels_path; 
     
    74111 
    75112 
    76 void sweep_set_window_icon (GtkWindow *window) 
     113void  
     114sweep_set_window_icon (GtkWindow *window) 
    77115{ 
    78116  GdkPixbuf * window_icon; 
     
    491529  gtk_window_add_accel_group (GTK_WINDOW(window), accel_group); 
    492530} 
     531 
     532 
     533void init_ui (void) 
     534{ 
     535  init_accels(); 
     536  init_styles(); 
     537  init_recent_manager(); 
     538} 
  • sweep/trunk/src/interface.h

    r435 r519  
    3333create_style (GdkColor * fg, GdkColor * bg, gboolean do_grade); 
    3434 
    35 void 
    36 init_styles (void); 
     35void  
     36init_ui(void); 
    3737 
    3838void 
    3939sweep_set_window_icon (GtkWindow * window); 
    4040 
    41  
     41void 
     42recent_manager_add_item (gchar *uri); 
    4243 
    4344GtkWidget * 
     
    5455void  
    5556attach_window_close_accel(GtkWindow *window); 
    56 void 
    57 init_accels (void); 
    5857 
    5958void 
  • sweep/trunk/src/main.c

    r435 r519  
    228228  init_cursors (); 
    229229 
    230   /* initialise styles */ 
    231   init_styles (); 
    232    
    233   /* initialise key bindings (accelerators) */ 
    234   init_accels (); 
     230  /* initialise interface components */ 
     231  init_ui (); 
    235232 
    236233  /* initialise devices */ 
  • sweep/trunk/src/view.c

    r443 r519  
    114114extern GdkCursor * sweep_cursors[]; 
    115115 
     116extern GtkRecentManager *recent_manager; 
     117 
    116118extern GtkStyle * style_wb; 
    117119extern GtkStyle * style_LCD; 
     
    457459                                                  sample_load_cb, FALSE, 
    458460                                                                                                  GDK_o, GDK_CONTROL_MASK, view); 
     461     
     462#if GTK_CHECK_VERSION (2, 10, 0) 
     463 
     464  GtkWidget *recent_menu; 
     465  GtkRecentFilter * filter; 
     466     
     467  if (recent_manager != NULL) { 
     468    recent_menu =  
     469          gtk_recent_chooser_menu_new_for_manager(recent_manager); 
     470    gtk_widget_show(recent_menu); 
     471       
     472    g_signal_connect(G_OBJECT(recent_menu), 
     473                     "item-activated", 
     474                     G_CALLBACK(recent_chooser_menu_activated_cb), 
     475                     NULL); 
     476                      
     477 
     478      
     479    filter = gtk_recent_filter_new();                 
     480    gtk_recent_filter_add_application(filter, g_get_application_name()); 
     481       
     482    gtk_recent_chooser_add_filter(GTK_RECENT_CHOOSER(recent_menu), filter); 
     483 
     484     
     485    menuitem = gtk_menu_item_new_with_label(_("Open Recent")); 
     486    gtk_menu_item_set_accel_path (GTK_MENU_ITEM(menuitem),  
     487                                "<Sweep-View>/File/Open Recent"); 
     488    gtk_menu_append(GTK_MENU(submenu), menuitem); 
     489 
     490    gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), recent_menu); 
    459491   
     492    gtk_widget_show(GTK_WIDGET(menuitem)); 
     493   
     494  } 
     495   
     496#endif  
     497     
    460498  create_view_menu_item (submenu, _("Save"), "<Sweep-View>/File/Save", view, 
    461499                                                  sample_save_cb, TRUE, 
     
    16231661  GtkWidget * notebook; 
    16241662#endif 
     1663     
     1664 
    16251665 
    16261666  GtkAccelGroup * accel_group;