Changeset 4265


Ignore:
Timestamp:
03/28/08 16:29:14 (5 years ago)
Author:
thomas
Message:

2008-03-28 Thomas Wood <thomas@…>

  • src/sms-compose.c: (page_shown), (sms_compose_page_new):
  • src/sms-contacts.c: (contacts_changed_cb), (contacts_removed_cb), (contacts_seq_complete_cb), (free_iter_slice), (nophoto_filter_func), (contacts_iter_compare_func), (contacts_visible_func), (malloc_list_free), (selection_changed_cb), (sms_contacts_update_delete_all), (sms_contacts_page_new):
  • src/sms-main.c: (notebook_add_page_with_icon), (main):
  • src/sms-notes.c: (page_shown), (page_hidden), (sms_notes_page_new):
  • src/sms.h:

Re-arrange toolbars to add dial button (bug 1306).

Location:
trunk/src/target/OM-2007.2/applications/openmoko-messages2
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog

    r4259 r4265  
     12008-03-28  Thomas Wood  <thomas@openedhand.com> 
     2 
     3        * src/sms-compose.c: (page_shown), (sms_compose_page_new): 
     4        * src/sms-contacts.c: (contacts_changed_cb), (contacts_removed_cb), 
     5        (contacts_seq_complete_cb), (free_iter_slice), 
     6        (nophoto_filter_func), (contacts_iter_compare_func), 
     7        (contacts_visible_func), (malloc_list_free), 
     8        (selection_changed_cb), (sms_contacts_update_delete_all), 
     9        (sms_contacts_page_new): 
     10        * src/sms-main.c: (notebook_add_page_with_icon), (main): 
     11        * src/sms-notes.c: (page_shown), (page_hidden), 
     12        (sms_notes_page_new): 
     13        * src/sms.h: 
     14 
     15        Re-arrange toolbars to add dial button (bug 1306). 
     16 
    1172008-03-27  Erin Yueh  <erin_yueh@openmoko.com> 
    218 
  • trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-compose.c

    r4259 r4265  
    3232        GdkPixbuf *photo; 
    3333        gchar *string; 
    34          
    35         /* Make delete(-all) buttons insensitive */ 
    36         /* TODO: Replace these with more useful buttons? */ 
    37         gtk_widget_set_sensitive (GTK_WIDGET (data->delete_button), FALSE); 
    38         gtk_widget_set_sensitive (GTK_WIDGET (data->delete_all_button), FALSE); 
    39          
    40         if (!data->sms_proxy) 
    41                 gtk_widget_set_sensitive (GTK_WIDGET (data->new_button), FALSE); 
     34 
    4235        gtk_tool_button_set_stock_id (GTK_TOOL_BUTTON (data->new_button), 
    4336                MOKO_STOCK_MAIL_SEND); 
     
    239232sms_compose_page_new (SmsData *data) 
    240233{ 
    241         GtkWidget *vbox, *frame, *contact_table, *align; 
     234        GtkWidget *vbox, *frame, *contact_table, *align, *toolbar; 
    242235         
    243236        /* Connect to new/send button clicked */ 
    244237        g_signal_connect (data->new_button, "clicked", 
    245238                G_CALLBACK (send_clicked_cb), data); 
     239         
     240        /* Create toolbar */ 
     241        toolbar = gtk_toolbar_new (); 
     242         
     243        /* Send button */ 
     244        data->new_button = gtk_tool_button_new_from_stock (MOKO_STOCK_MAIL_SEND); 
     245        gtk_tool_item_set_expand (data->new_button, TRUE); 
     246        gtk_toolbar_insert (GTK_TOOLBAR (toolbar), data->new_button, -1); 
     247        g_signal_connect (data->new_button, "clicked", 
     248                G_CALLBACK (send_clicked_cb), &data); 
    246249         
    247250        /* Create contact info display/number entry */ 
     
    288291        /* Pack widgets */ 
    289292        vbox = gtk_vbox_new (FALSE, 0); 
     293        gtk_box_pack_start (GTK_BOX (vbox), toolbar, FALSE, TRUE, 0); 
    290294        gtk_box_pack_start (GTK_BOX (vbox), contact_table, FALSE, TRUE, 0); 
    291295        gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0); 
  • trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-contacts.c

    r3918 r4265  
    2828#include <string.h> 
    2929 
     30 
     31#define PK_NAMESPACE "org.openmoko.PhoneKit" 
     32#define DIALER_NAMESPACE "org.openmoko.PhoneKit.Dialer" 
     33#define DIALER_OBJECT "/org/openmoko/PhoneKit/Dialer" 
     34 
     35GtkWidget *treeview; 
     36 
     37 
    3038static const gchar *clear_numbers_uid; 
    3139 
    32 static gboolean hidden = FALSE; 
    33  
    3440static void selection_changed_cb (GtkTreeSelection *selection, SmsData *data); 
    35  
    36 static void 
    37 page_shown (SmsData *data) 
    38 { 
    39         GtkTreeSelection *selection; 
    40          
    41         /* Update delete/delete-all buttons */ 
    42         sms_contacts_update_delete_all (data); 
    43         selection = gtk_tree_view_get_selection ( 
    44                 GTK_TREE_VIEW (data->contacts_treeview)); 
    45         selection_changed_cb (selection, data); 
    46 } 
    47  
    48 static void 
    49 page_hidden (SmsData *data) 
    50 { 
    51 } 
    52  
    53 static void 
    54 notify_visible_cb (GObject *gobject, GParamSpec *arg1, SmsData *data) 
    55 { 
    56         if ((!hidden) && (!GTK_WIDGET_VISIBLE (gobject))) { 
    57                 hidden = TRUE; 
    58                 page_hidden (data); 
    59         } 
    60 } 
    61  
    62 static gboolean 
    63 visibility_notify_event_cb (GtkWidget *widget, GdkEventVisibility *event, 
    64                             SmsData *data) 
    65 { 
    66         if (((event->state == GDK_VISIBILITY_PARTIAL) || 
    67              (event->state == GDK_VISIBILITY_UNOBSCURED)) && (hidden)) { 
    68                 hidden = FALSE; 
    69                 page_shown (data); 
    70         } 
    71          
    72         return FALSE; 
    73 } 
    74  
    75 static void 
    76 unmap_cb (GtkWidget *widget, SmsData *data) 
    77 { 
    78         if (!hidden) { 
    79                 hidden = TRUE; 
    80                 page_hidden (data); 
    81         } 
    82 } 
     41static void dial_clicked_cb (GtkWidget *button, SmsData *data); 
     42 
     43static void 
     44new_clicked_cb (GtkToolButton *button, SmsData *data) 
     45{ 
     46        if (gtk_notebook_get_current_page (GTK_NOTEBOOK (data->notebook)) == 
     47            SMS_PAGE_COMPOSE) return; 
     48 
     49        gtk_text_buffer_set_text (gtk_text_view_get_buffer ( 
     50                GTK_TEXT_VIEW (data->sms_textview)), "", -1); 
     51 
     52        gtk_notebook_set_current_page ( 
     53                GTK_NOTEBOOK (data->notebook), SMS_PAGE_COMPOSE); 
     54} 
     55 
     56void  
     57openmoko_contacts_util_dial_number (const gchar *number) 
     58{ 
     59  DBusGConnection *conn; 
     60  DBusGProxy *proxy; 
     61  GError *err = NULL; 
     62 
     63  conn = dbus_g_bus_get (DBUS_BUS_SESSION, &err); 
     64  if (conn == NULL) 
     65  { 
     66    g_warning ("Failed to make DBus connection: %s", err->message); 
     67    g_error_free (err); 
     68    return; 
     69  } 
     70 
     71  proxy = dbus_g_proxy_new_for_name (conn, 
     72                                     PK_NAMESPACE, 
     73                                     DIALER_OBJECT, 
     74                                     DIALER_NAMESPACE); 
     75  if (proxy == NULL) 
     76  { 
     77    g_warning ("Unable to get dialer object"); 
     78    return; 
     79  } 
     80 
     81  err = NULL; 
     82  dbus_g_proxy_call (proxy, "Dial", &err, 
     83                     G_TYPE_STRING, number, 
     84                     G_TYPE_INVALID, G_TYPE_INVALID); 
     85 
     86  if (err) 
     87  { 
     88    g_warning (err->message); 
     89    g_error_free (err); 
     90  } 
     91} 
     92 
     93 
     94/* hito_vcard_attribute_get_type() taken from hito-vcard-util.c 
     95 * Copyright 2007 OpenedHand Ltd, licensed under GPL */ 
     96gchar* 
     97hito_vcard_attribute_get_type (EVCardAttribute *attr) 
     98{ 
     99  GList *list, *l; 
     100  gchar *result = NULL; 
     101  list = e_vcard_attribute_get_param (attr, "TYPE"); 
     102 
     103  for (l = list; l; l = g_list_next (l)) 
     104  { 
     105    if (result) 
     106    { 
     107      gchar *old_result = result; 
     108      result = g_strconcat (l->data, ";", old_result, NULL); 
     109      g_free (old_result); 
     110    } 
     111    else 
     112    { 
     113      result = g_strdup (l->data); 
     114    } 
     115  } 
     116 
     117  return result; 
     118} 
     119 
     120 
     121static void 
     122on_dial_number_clicked (GtkWidget *eb, GdkEventButton *event, GtkDialog *dialog) 
     123{ 
     124  EVCardAttribute *att; 
     125  const gchar *number; 
     126 
     127  att = g_object_get_data (G_OBJECT (eb), "contact"); 
     128  number = hito_vcard_attribute_get_value_string (att); 
     129  openmoko_contacts_util_dial_number (number); 
     130 
     131  gtk_dialog_response (dialog, GTK_RESPONSE_CANCEL); 
     132} 
     133 
     134static void 
     135dial_clicked_cb (GtkWidget *button, SmsData *data) 
     136{ 
     137        GList *numbers; 
     138        GList *n; 
     139        gint num_tels = 0; 
     140        GError *err = NULL; 
     141        EContact *contact; 
     142         
     143        g_return_if_fail (GTK_IS_TREE_VIEW (treeview)); 
     144         
     145        contact = sms_get_selected_contact (data); 
     146         
     147        if (err) 
     148        { 
     149                g_warning ("Could not find contact"); 
     150                return; 
     151        } 
     152         
     153        numbers = hito_vcard_get_named_attributes (E_VCARD (contact), EVC_TEL); 
     154        num_tels = g_list_length (numbers); 
     155         
     156        if (num_tels < 1) 
     157        { 
     158                g_print ("Dial: This contact does not have any numbers\n"); 
     159                return; 
     160        } 
     161        else if (num_tels == 1) 
     162        { 
     163                /* dial */ 
     164                openmoko_contacts_util_dial_number ( 
     165                        hito_vcard_attribute_get_value_string (numbers->data)); 
     166        } 
     167        else 
     168        { 
     169                /* Make a dialog with a list of numbers, which are one-click dialling */ 
     170                /* dial on click, and then close the window */ 
     171                GtkWidget *dialog, *vbox, *hbox, *image, *label; 
     172 
     173                dialog = gtk_dialog_new_with_buttons ("Please choose a number to call", 
     174                                                      GTK_WINDOW (data->window), 
     175                                                      GTK_DIALOG_DESTROY_WITH_PARENT, 
     176                                                      GTK_STOCK_CANCEL, 
     177                                                      GTK_RESPONSE_CANCEL, 
     178                                                      NULL); 
     179                gtk_container_set_border_width (GTK_CONTAINER (dialog), 12); 
     180                vbox = gtk_vbox_new (FALSE, 8); 
     181                gtk_box_pack_start (GTK_BOX (GTK_DIALOG(dialog)->vbox), vbox,  
     182                                    FALSE, FALSE, 12); 
     183 
     184                GtkSizeGroup *size_group; 
     185                size_group = gtk_size_group_new (GTK_SIZE_GROUP_BOTH); 
     186                for (n = numbers; n; n = n->next) 
     187                { 
     188                        GtkWidget *button = gtk_event_box_new (); 
     189                        gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 8); 
     190 
     191                        hbox = gtk_hbox_new (FALSE, 6); 
     192                        gtk_container_add (GTK_CONTAINER (button), hbox); 
     193                   
     194                        label = gtk_label_new (hito_vcard_attribute_get_type (n->data)); 
     195                        gtk_size_group_add_widget (size_group, label); 
     196                        gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); 
     197                        gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); 
     198 
     199                        image = gtk_image_new_from_stock (MOKO_STOCK_CONTACT_PHONE,  
     200                                                    GTK_ICON_SIZE_BUTTON); 
     201                        gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0); 
     202 
     203                        label = gtk_label_new (hito_vcard_attribute_get_value_string (n->data)); 
     204                        gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); 
     205 
     206                        g_signal_connect (button, "button-release-event", 
     207                                    G_CALLBACK (on_dial_number_clicked), (gpointer)dialog); 
     208                        g_object_set_data (G_OBJECT (button), "contact", n->data); 
     209                } 
     210                g_object_unref (size_group); 
     211                gtk_widget_show_all (dialog); 
     212                gint res = gtk_dialog_run (GTK_DIALOG (dialog)); 
     213                res++; 
     214                gtk_widget_destroy (dialog); 
     215        } 
     216} 
     217 
     218 
    83219 
    84220static void 
     
    376512} 
    377513 
    378 static void 
    379 delete_clicked_cb (GtkToolButton *button, SmsData *data) 
    380 { 
    381         if (hidden) return; 
    382          
    383         if (sms_delete_selected_contact_messages (data)) { 
    384                 gtk_widget_set_sensitive (GTK_WIDGET (data->delete_button), 
    385                         FALSE); 
    386         } 
    387 } 
    388  
    389 static void 
    390 delete_all_added_cb (JanaStoreView *store_view, GList *components, 
    391                      SmsData *data) 
    392 { 
    393         for (; components; components = components->next) { 
    394                 JanaComponent *comp = JANA_COMPONENT (components->data); 
    395                 jana_store_remove_component ( 
    396                         jana_store_view_get_store (store_view), comp); 
    397         } 
    398 } 
    399  
    400 static void 
    401 delete_all_progress_cb (JanaStoreView *store_view, gint percent, 
    402                         SmsData *data) 
    403 { 
    404         if (percent == 100) g_object_unref (store_view); 
    405 } 
    406  
    407 static void 
    408 delete_all_clicked_cb (GtkToolButton *button, SmsData *data) 
    409 { 
    410         JanaStoreView *notes_view; 
    411         GtkWidget *dialog; 
    412         gint response; 
    413  
    414         if (hidden) return; 
    415          
    416         dialog = gtk_message_dialog_new_with_markup (GTK_WINDOW (data->window), 
    417                 GTK_DIALOG_MODAL, 
    418                 GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, 
    419                 "Delete <b>all</b> messages?"); 
    420         gtk_dialog_add_buttons (GTK_DIALOG (dialog), GTK_STOCK_CANCEL, 
    421                 GTK_RESPONSE_CANCEL, GTK_STOCK_DELETE, GTK_RESPONSE_YES, NULL); 
    422          
    423         response = gtk_dialog_run (GTK_DIALOG (dialog)); 
    424         gtk_widget_destroy (dialog); 
    425         if (response != GTK_RESPONSE_YES) return; 
    426          
    427         /* Delete all messages */ 
    428         notes_view = jana_store_get_view (data->notes); 
    429         g_signal_connect (notes_view, "added", 
    430                 G_CALLBACK (delete_all_added_cb), data); 
    431         g_signal_connect (notes_view, "progress", 
    432                 G_CALLBACK (delete_all_progress_cb), data); 
    433         jana_store_view_start (notes_view); 
    434 } 
    435514 
    436515static void 
     
    579658sms_contacts_update_delete_all (SmsData *data) 
    580659{ 
     660 
    581661        if (gtk_notebook_get_current_page (GTK_NOTEBOOK (data->notebook)) == 
    582662            SMS_PAGE_CONTACTS) { 
     
    595675{ 
    596676        EBookQuery *qrys[(E_CONTACT_LAST_PHONE_ID-E_CONTACT_FIRST_PHONE_ID)+1]; 
    597         GtkWidget *contacts_combo, *vbox; 
     677        GtkWidget *contacts_combo, *vbox, *toolbar; 
    598678        GtkTreeSelection *selection; 
    599679        GtkCellRenderer *renderer; 
     
    704784         
    705785        /* Create tree view */ 
    706         data->contacts_treeview = gtk_tree_view_new_with_model ( 
     786        treeview = data->contacts_treeview = gtk_tree_view_new_with_model ( 
    707787                data->contacts_filter); 
    708788        gtk_tree_view_set_rules_hint (GTK_TREE_VIEW ( 
     
    735815                data->contacts_treeview); 
    736816         
     817        /* Create toolbar */ 
     818        toolbar = gtk_toolbar_new (); 
     819         
     820        /* New button */ 
     821        data->new_button = gtk_tool_button_new_from_stock (MOKO_STOCK_SMS_NEW); 
     822        gtk_tool_item_set_expand (data->new_button, TRUE); 
     823        gtk_toolbar_insert (GTK_TOOLBAR (toolbar), data->new_button, -1); 
     824        g_signal_connect (data->new_button, "clicked", 
     825                G_CALLBACK (new_clicked_cb), data); 
     826         
     827        /* Dial button */ 
     828        data->dial_button = gtk_tool_button_new_from_stock (MOKO_STOCK_CALL_DIAL); 
     829        gtk_tool_item_set_expand (data->dial_button, TRUE); 
     830        gtk_toolbar_insert (GTK_TOOLBAR (toolbar), data->dial_button, -1); 
     831        g_signal_connect (data->dial_button, "clicked", 
     832                G_CALLBACK (dial_clicked_cb), data); 
     833         
    737834        /* Pack widgets into vbox and return */ 
    738835        vbox = gtk_vbox_new (FALSE, 0); 
     836        gtk_box_pack_start (GTK_BOX (vbox), toolbar, 
     837                FALSE, TRUE, 0); 
    739838        gtk_box_pack_start (GTK_BOX (vbox), data->contacts_search, 
    740839                FALSE, TRUE, 0); 
     
    754853        e_book_view_start (view); 
    755854         
    756         /* Connect to toolbar delete buttons */ 
    757         g_signal_connect (data->delete_button, "clicked", 
    758                 G_CALLBACK (delete_clicked_cb), data); 
    759         g_signal_connect (data->delete_all_button, "clicked", 
    760                 G_CALLBACK (delete_all_clicked_cb), data); 
    761  
    762         /* Add events for detecting whether the page has been hidden/shown */ 
    763         gtk_widget_add_events (data->contacts_treeview, 
    764                 GDK_VISIBILITY_NOTIFY_MASK); 
    765         g_signal_connect (data->contacts_treeview, "visibility-notify-event", 
    766                 G_CALLBACK (visibility_notify_event_cb), data); 
    767         g_signal_connect (data->contacts_treeview, "notify::visible", 
    768                 G_CALLBACK (notify_visible_cb), data); 
    769         g_signal_connect (vbox, "unmap", 
    770                 G_CALLBACK (unmap_cb), data); 
    771  
    772855        return vbox; 
    773856} 
  • trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-main.c

    r3868 r4265  
    4747} 
    4848 
    49 static void 
    50 new_clicked_cb (GtkToolButton *button, SmsData *data) 
    51 { 
    52         if (gtk_notebook_get_current_page (GTK_NOTEBOOK (data->notebook)) == 
    53             SMS_PAGE_COMPOSE) return; 
    54  
    55         gtk_text_buffer_set_text (gtk_text_view_get_buffer ( 
    56                 GTK_TEXT_VIEW (data->sms_textview)), "", -1); 
    57  
    58         gtk_notebook_set_current_page ( 
    59                 GTK_NOTEBOOK (data->notebook), SMS_PAGE_COMPOSE); 
    60 } 
    61  
    6249int 
    6350main (int argc, char **argv) 
     
    10491        g_signal_connect (data.window, "delete-event", 
    10592                G_CALLBACK (gtk_main_quit), NULL); 
    106          
    107         /* Create toolbar */ 
    108         toolbar = gtk_toolbar_new (); 
    109          
    110         /* New button */ 
    111         data.new_button = gtk_tool_button_new_from_stock (MOKO_STOCK_SMS_NEW); 
    112         gtk_tool_item_set_expand (data.new_button, TRUE); 
    113         gtk_toolbar_insert (GTK_TOOLBAR (toolbar), data.new_button, 0); 
    114         g_signal_connect (data.new_button, "clicked", 
    115                 G_CALLBACK (new_clicked_cb), &data); 
    116          
    117         /* Forward button */ 
    118         data.forward_button = gtk_tool_button_new_from_stock ( 
    119                 MOKO_STOCK_MAIL_FORWARD); 
    120         gtk_tool_item_set_expand (data.forward_button, TRUE); 
    121         gtk_toolbar_insert (GTK_TOOLBAR (toolbar), data.forward_button, 1); 
    122          
    123         /* Delete all button */ 
    124         data.delete_all_button = gtk_tool_button_new_from_stock ( 
    125                 MOKO_STOCK_FOLDER_DELETE); 
    126         gtk_tool_item_set_expand (data.delete_all_button, TRUE); 
    127         gtk_toolbar_insert (GTK_TOOLBAR (toolbar), data.delete_all_button, 2); 
    128         gtk_widget_set_sensitive (GTK_WIDGET (data.delete_all_button), FALSE); 
    129          
    130         /* Delete button */ 
    131         data.delete_button = gtk_tool_button_new_from_stock ( 
    132                 GTK_STOCK_DELETE); 
    133         gtk_tool_item_set_expand (data.delete_button, TRUE); 
    134         gtk_toolbar_insert (GTK_TOOLBAR (toolbar), data.delete_button, 3); 
    135         gtk_widget_set_sensitive (GTK_WIDGET (data.delete_button), FALSE); 
     93 
    13694         
    13795        /* Create notebook */ 
     
    153111        /* Pack and show */ 
    154112        vbox = gtk_vbox_new (FALSE, 0); 
    155         gtk_box_pack_start (GTK_BOX (vbox), toolbar, FALSE, TRUE, 0); 
    156113        gtk_box_pack_start (GTK_BOX (vbox), data.notebook, TRUE, TRUE, 0); 
    157114        gtk_container_add (GTK_CONTAINER (data.window), vbox); 
     
    169126 
    170127        gtk_widget_show_all (data.window); 
    171         gtk_widget_hide (GTK_WIDGET (data.forward_button)); 
    172128         
    173129        gtk_main (); 
  • trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c

    r4182 r4265  
    179179        gboolean found_match = FALSE; 
    180180        EContact *contact = NULL; 
    181          
    182         /* Show forward button */ 
    183         gtk_widget_show (GTK_WIDGET (data->forward_button)); 
    184  
    185         gtk_widget_set_sensitive (GTK_WIDGET (data->delete_button), FALSE); 
    186         gtk_widget_set_sensitive (GTK_WIDGET (data->forward_button), FALSE); 
    187          
     181 
    188182        if (!open) return; 
    189183         
     
    283277{ 
    284278        GtkAdjustment *hadjust, *vadjust; 
    285  
    286         /* Hide forward button */ 
    287         gtk_widget_hide (GTK_WIDGET (data->forward_button)); 
    288279 
    289280        if (data->notes_scroll_idle) g_source_remove (data->notes_scroll_idle); 
     
    812803sms_notes_page_new (SmsData *data) 
    813804{ 
    814         GtkWidget *scroll, *vbox, *notes_combo; 
     805        GtkWidget *scroll, *vbox, *notes_combo, *toolbar; 
    815806        GtkCellRenderer *renderer; 
    816807        GHashTable *colours_hash; 
     
    879870                G_CALLBACK (selection_changed_cb), data); 
    880871         
     872        /* create toolbar */ 
     873        toolbar = gtk_toolbar_new (); 
     874         
     875        /* Forward button */ 
     876        data->forward_button = gtk_tool_button_new_from_stock ( 
     877                MOKO_STOCK_MAIL_FORWARD); 
     878        gtk_tool_item_set_expand (data->forward_button, TRUE); 
     879        gtk_toolbar_insert (GTK_TOOLBAR (toolbar), data->forward_button, -1); 
     880         
     881        /* Delete all button */ 
     882        data->delete_all_button = gtk_tool_button_new_from_stock ( 
     883                MOKO_STOCK_FOLDER_DELETE); 
     884        gtk_tool_item_set_expand (data->delete_all_button, TRUE); 
     885        gtk_toolbar_insert (GTK_TOOLBAR (toolbar), data->delete_all_button, -1); 
     886        gtk_widget_set_sensitive (GTK_WIDGET (data->delete_all_button), FALSE); 
     887         
     888        /* Delete button */ 
     889        data->delete_button = gtk_tool_button_new_from_stock ( 
     890                GTK_STOCK_DELETE); 
     891        gtk_tool_item_set_expand (data->delete_button, TRUE); 
     892        gtk_toolbar_insert (GTK_TOOLBAR (toolbar), data->delete_button, -1); 
     893        gtk_widget_set_sensitive (GTK_WIDGET (data->delete_button), FALSE); 
     894         
    881895        /* Create search bar */ 
    882896        notes_combo = gtk_combo_box_new_text (); 
     
    900914         
    901915        vbox = gtk_vbox_new (FALSE, 0); 
     916        gtk_box_pack_start (GTK_BOX (vbox), toolbar, FALSE, TRUE, 0); 
    902917        gtk_box_pack_start (GTK_BOX (vbox), data->notes_search, FALSE, TRUE, 0); 
    903918        gtk_box_pack_start (GTK_BOX (vbox), scroll, TRUE, TRUE, 0); 
  • trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms.h

    r3918 r4265  
    2727#include <dbus/dbus-glib-bindings.h> 
    2828#include <libebook/e-book.h> 
     29#include <libmokoui2/moko-stock.h> 
    2930 
    3031typedef struct { 
     
    5859        GtkWidget *notebook; 
    5960        GtkToolItem *new_button; 
     61        GtkToolItem *dial_button; 
    6062        GtkToolItem *forward_button; 
    6163        GtkToolItem *delete_all_button; 
Note: See TracChangeset for help on using the changeset viewer.