Changeset 16

Show
Ignore:
Timestamp:
10/31/07 22:41:50
Author:
pvanhoof
Message:

2007-10-31 Philip Van Hoof <pvanhoof@gnome.org>

        • Deviced a method to pass around things to the screens, like an

instruction string to display to the user

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/ChangeLog

    r13 r16  
     12007-10-31  Philip Van Hoof  <pvanhoof@gnome.org> 
     2 
     3        * Deviced a method to pass around things to the screens, like an 
     4        instruction string to display to the user 
     5 
    162007-10-29  Philip Van Hoof  <pvanhoof@gnome.org> 
    27 
  • trunk/src/tmut-folder-view.c

    r13 r16  
    3333struct _TMutFolderViewPriv 
    3434{ 
    35         GtkProgress *progress; 
    3635        GtkTreeView *headers_treeview; 
    3736        TnyFolderMonitor *monitor; 
     
    5049        TMutFolderViewPriv *priv = TMUT_FOLDER_VIEW_GET_PRIVATE (user_data); 
    5150 
    52         if (priv->progress) { 
    53                 gtk_progress_set_percentage (priv->progress,  
    54                         tny_status_get_fraction (status)); 
    55         } 
    56  
    57         return; 
    58 
    59  
    60 static void 
    61 on_active_folder_got_set (TnyFolder *folder, gboolean cancelled, GError *err, gpointer user_data) 
    62 
    63         g_object_unref (user_data); 
    64  
    65         return; 
    66 
     51        if (priv->shell) 
     52                gtk_progress_set_percentage (tmut_shell_window_get_progress (priv->shell),  
     53                                tny_status_get_fraction (status)); 
     54 
     55        return; 
     56
     57 
    6758 
    6859static void 
     
    8273} 
    8374 
     75static void 
     76on_active_folder_got_set (TnyFolder *folder, gboolean cancelled, GError *err, gpointer user_data) 
     77{ 
     78        g_object_unref (user_data); 
     79 
     80        return; 
     81} 
     82 
    8483void  
    8584tmut_folder_view_set_active_folder (TMutFolderView *self, TnyFolder *folder) 
     
    10099        tny_gtk_header_list_model_set_folder (TNY_GTK_HEADER_LIST_MODEL (model),  
    101100                folder, FALSE, NULL, status_update, self); 
    102  
    103101 
    104102        /* The folder monitor makes Push E-mail work */ 
     
    119117{ 
    120118        TMutFolderView *self = TMUT_FOLDER_VIEW (user_data); 
     119        TMutFolderViewPriv *priv = TMUT_FOLDER_VIEW_GET_PRIVATE (self); 
    121120 
    122121        if (!canceled && !err) { 
     
    127126                tmut_shell_window_set_child ( 
    128127                        tmut_shell_child_get_window (TMUT_SHELL_CHILD (self)),  
    129                         TMUT_SHELL_CHILD (view)); 
     128                        TMUT_SHELL_CHILD (view), "Go back"); 
    130129 
    131130        } 
     
    182181        GtkWidget *widget, *sw; 
    183182 
    184         priv->progress = NULL; 
    185183        priv->monitor = NULL; 
    186184        priv->ringtone_player = NULL; 
     
    229227                g_object_unref (priv->ringtone_player); 
    230228 
    231         if (priv->progress) 
    232                 g_object_unref (priv->progress); 
    233  
    234229        (*parent_class->finalize) (object); 
     230 
    235231        return; 
    236232} 
     
    259255 **/ 
    260256TMutFolderView* 
    261 tmut_folder_view_new (GtkProgress *progress
     257tmut_folder_view_new (void
    262258{ 
    263259        TMutFolderView *self = g_object_new (TMUT_TYPE_FOLDER_VIEW, NULL); 
    264         TMutFolderViewPriv *priv = TMUT_FOLDER_VIEW_GET_PRIVATE (self); 
    265  
    266         priv->progress = GTK_PROGRESS (g_object_ref (progress)); 
    267260 
    268261        return TMUT_FOLDER_VIEW (self); 
  • trunk/src/tmut-folder-view.h

    r12 r16  
    4949 
    5050GType tmut_folder_view_get_type (void); 
    51 TMutFolderView* tmut_folder_view_new (GtkProgress *process); 
     51TMutFolderView* tmut_folder_view_new (void); 
    5252 
    5353void tmut_folder_view_set_active_folder (TMutFolderView *self, TnyFolder *folder); 
  • trunk/src/tmut-main.c

    r12 r16  
    3434        TnyAccountStore *account_store; 
    3535        TnyAccountStoreView *view; 
    36         GtkProgressBar *progressbar; 
    3736 
    3837        if (!g_thread_supported ())  
     
    4443        gtk_init (&argc, &argv); 
    4544 
    46         progressbar = GTK_PROGRESS_BAR (gtk_progress_bar_new ()); 
    47         gtk_widget_show (GTK_WIDGET (progressbar)); 
    48  
    49         window = GTK_WIDGET (tmut_shell_window_new (progressbar)); 
     45        window = GTK_WIDGET (tmut_shell_window_new ()); 
    5046        gtk_window_set_title (GTK_WINDOW (window), "TMut"); 
    5147 
     
    5349        account_store = tny_platform_factory_new_account_store (platfact); 
    5450 
    55         view = TNY_ACCOUNT_STORE_VIEW ( 
    56                 tmut_menu_view_new (GTK_PROGRESS (progressbar))); 
     51        view = TNY_ACCOUNT_STORE_VIEW (tmut_menu_view_new ()); 
    5752        gtk_widget_show (GTK_WIDGET (view)); 
    5853 
    5954        tmut_shell_window_set_child (TMUT_SHELL_WINDOW (window),  
    60                 TMUT_SHELL_CHILD (view)); 
     55                TMUT_SHELL_CHILD (view), "Select account or folder"); 
    6156 
    6257        tny_account_store_view_set_account_store (view, account_store); 
  • trunk/src/tmut-menu-view.c

    r12 r16  
    3434        GtkTreeView *folders_treeview; 
    3535        GtkButton *newmsg_button; 
    36         GtkProgress *progress; 
    3736        GtkComboBox *accounts_combo; 
    3837        TMutShellWindow *shell; 
     
    4140#define TMUT_MENU_VIEW_GET_PRIVATE(o) \ 
    4241        (G_TYPE_INSTANCE_GET_PRIVATE ((o), TMUT_TYPE_MENU_VIEW, TMutMenuViewPriv)) 
    43  
    4442 
    4543 
     
    132130                                &folder, -1); 
    133131 
    134                         view = tmut_folder_view_new (priv->progress); 
     132                        view = tmut_folder_view_new (); 
    135133                        tmut_folder_view_set_active_folder (view, folder); 
    136134                        gtk_widget_show (GTK_WIDGET (view)); 
     
    138136                        tmut_shell_window_set_child ( 
    139137                                tmut_shell_child_get_window (TMUT_SHELL_CHILD (self)),  
    140                                 TMUT_SHELL_CHILD (view)); 
     138                                TMUT_SHELL_CHILD (view), "Select E-mail to view"); 
    141139 
    142140                        g_object_unref (folder); 
     
    168166        GtkTreeSelection *select; 
    169167        GtkWidget *widget, *sw; 
    170  
    171         priv->progress = NULL; 
    172168 
    173169        priv->accounts_combo = GTK_COMBO_BOX (gtk_combo_box_new ()); 
     
    226222        TMutMenuViewPriv *priv = TMUT_MENU_VIEW_GET_PRIVATE (object); 
    227223 
    228         if (priv->progress) 
    229                 g_object_unref (priv->progress); 
    230  
    231224        (*parent_class->finalize) (object); 
     225 
    232226        return; 
    233227} 
     
    290284 **/ 
    291285TMutMenuView* 
    292 tmut_menu_view_new (GtkProgress *progress
     286tmut_menu_view_new (void
    293287{ 
    294288        TMutMenuView *self = g_object_new (TMUT_TYPE_MENU_VIEW, NULL); 
    295         TMutMenuViewPriv *priv = TMUT_MENU_VIEW_GET_PRIVATE (self); 
    296  
    297         priv->progress = GTK_PROGRESS (g_object_ref (progress)); 
    298289 
    299290        return TMUT_MENU_VIEW (self); 
  • trunk/src/tmut-menu-view.h

    r3 r16  
    5252 
    5353GType tmut_menu_view_get_type (void); 
    54 TMutMenuView* tmut_menu_view_new (GtkProgress *process); 
     54TMutMenuView* tmut_menu_view_new (void); 
    5555 
    5656void tmut_menu_view_set_active_account (TMutMenuView *self, TnyAccount *account); 
  • trunk/src/tmut-shell-window.c

    r14 r16  
    2727typedef struct _TMutShellWindowPriv TMutShellWindowPriv; 
    2828 
     29typedef struct { 
     30        TMutShellChild *child; 
     31        const gchar *instruction; 
     32} ChildSet; 
     33 
    2934struct _TMutShellWindowPriv { 
    30         GtkWidget *vbox, *hbox, *back_button; 
     35        GtkWidget *vbox;  
     36        GtkLabel *instruction_label; 
    3137        GtkProgressBar *progress_bar; 
    3238        GList *childs; 
    33         TMutShellChild *current; 
     39        ChildSet *current; 
    3440}; 
    3541 
     
    3945 
    4046void  
    41 tmut_shell_window_set_child (TMutShellWindow *self, TMutShellChild *child
     47tmut_shell_window_set_child (TMutShellWindow *self, TMutShellChild *child, const gchar *instruction
    4248{ 
    4349        TMutShellWindowPriv *priv = TMUT_SHELL_WINDOW_GET_PRIVATE (self); 
    44  
    45         if (priv->current) 
    46                 gtk_container_remove (GTK_CONTAINER (priv->vbox), GTK_WIDGET (priv->current)); 
    47  
    48         priv->childs = g_list_prepend (priv->childs, g_object_ref (child)); /* A */ 
    49         priv->current = child;  
    50         gtk_box_pack_start (GTK_BOX (priv->vbox), GTK_WIDGET (priv->current),  
     50        ChildSet *set = g_slice_new0 (ChildSet); 
     51 
     52        if (priv->current && priv->current->child) 
     53                gtk_container_remove (GTK_CONTAINER (priv->vbox), GTK_WIDGET (priv->current->child)); 
     54 
     55        set->child = g_object_ref (child); 
     56        set->instruction = instruction; 
     57 
     58        priv->childs = g_list_prepend (priv->childs, set); /* A */ 
     59        priv->current = set;  
     60 
     61        gtk_box_pack_start (GTK_BOX (priv->vbox), GTK_WIDGET (set->child),  
    5162                TRUE, TRUE, 0); 
    52  
    53         tmut_shell_child_set_window (child, self); 
     63        gtk_label_set_text (priv->instruction_label, set->instruction); 
     64 
     65        tmut_shell_child_set_window (set->child, self); 
    5466 
    5567        return; 
     
    6577        if (cnt > 1)  
    6678        { 
    67                 gtk_container_remove (GTK_CONTAINER (priv->vbox), GTK_WIDGET (priv->current)); 
     79                if (priv->current && priv->current->child) 
     80                        gtk_container_remove (GTK_CONTAINER (priv->vbox), GTK_WIDGET (priv->current->child)); 
    6881                priv->childs = g_list_remove (priv->childs, priv->current); 
    6982 
    7083                first = g_list_first (priv->childs); 
    71                 g_object_unref (priv->current); /* A */ 
     84                g_object_unref (priv->current->child); /* A */ 
     85                g_slice_free (ChildSet, priv->current); 
    7286                priv->current = first->data; 
    73                 gtk_box_pack_start (GTK_BOX (priv->vbox), GTK_WIDGET (priv->current),  
     87                gtk_box_pack_start (GTK_BOX (priv->vbox), GTK_WIDGET (priv->current->child),  
    7488                        TRUE, TRUE, 0); 
     89                gtk_label_set_text (priv->instruction_label, priv->current->instruction); 
     90 
    7591        } 
    7692 
     
    86102 **/ 
    87103TMutShellWindow * 
    88 tmut_shell_window_new (GtkProgressBar *progress_bar
     104tmut_shell_window_new (void
    89105{ 
    90106        TMutShellWindow *self = g_object_new (TMUT_TYPE_SHELL_WINDOW, NULL); 
     107 
     108        return TMUT_SHELL_WINDOW (self); 
     109} 
     110 
     111GtkProgress*  
     112tmut_shell_window_get_progress (TMutShellWindow *self) 
     113{ 
    91114        TMutShellWindowPriv *priv = TMUT_SHELL_WINDOW_GET_PRIVATE (self); 
    92115 
    93         priv->progress_bar = GTK_PROGRESS_BAR (g_object_ref (progress_bar)); 
    94  
    95         gtk_box_pack_start (GTK_BOX (priv->hbox), GTK_WIDGET (priv->progress_bar),  
    96                 FALSE, TRUE, 0); 
    97         gtk_box_pack_start (GTK_BOX (priv->hbox), GTK_WIDGET (priv->back_button),  
    98                 FALSE, TRUE, 0); 
    99  
    100         return TMUT_SHELL_WINDOW (self); 
     116        return GTK_PROGRESS (priv->progress_bar); 
    101117} 
    102118 
     
    106122{ 
    107123        TMutShellWindowPriv *priv = TMUT_SHELL_WINDOW_GET_PRIVATE (instance); 
    108  
    109         priv->progress_bar = NULL; 
     124        GtkWidget *hbox, *vvbox, *back_button; 
     125 
    110126        priv->vbox = gtk_vbox_new (FALSE, 0); 
    111         priv->hbox = gtk_hbox_new (FALSE, 0); 
    112         priv->back_button = gtk_button_new_with_label ("<"); 
    113  
    114         gtk_widget_show (priv->back_button); 
     127        hbox = gtk_hbox_new (FALSE, 0); 
     128        vvbox = gtk_vbox_new (FALSE, 0); 
     129        back_button = gtk_button_new_with_label ("<"); 
     130        priv->progress_bar = GTK_PROGRESS_BAR (gtk_progress_bar_new ()); 
     131        priv->instruction_label = GTK_LABEL (gtk_label_new ("")); 
     132 
     133        gtk_widget_show (GTK_WIDGET (priv->progress_bar)); 
     134        gtk_widget_show (back_button); 
     135        gtk_widget_show (GTK_WIDGET (priv->instruction_label)); 
    115136        gtk_widget_show (priv->vbox); 
    116         gtk_widget_show (priv->hbox); 
    117  
    118         gtk_box_pack_start (GTK_BOX (priv->vbox), GTK_WIDGET (priv->hbox),  
    119                 FALSE, TRUE, 0); 
    120  
    121 /*      At construction  
    122         gtk_box_pack_start (GTK_BOX (priv->hbox), GTK_WIDGET (priv->progress_bar),  
    123                 FALSE, TRUE, 0); 
    124         gtk_box_pack_start (GTK_BOX (priv->hbox), GTK_WIDGET (priv->back_button),  
    125                 FALSE, TRUE, 0); 
    126 */ 
     137        gtk_widget_show (hbox); 
     138        gtk_widget_show (vvbox); 
     139 
     140        gtk_misc_set_alignment (GTK_MISC (priv->instruction_label), 0, 0); 
     141 
     142        gtk_box_pack_start (GTK_BOX (priv->vbox), GTK_WIDGET (hbox),  
     143                FALSE, TRUE, 0); 
     144        gtk_box_pack_start (GTK_BOX (hbox), GTK_WIDGET (vvbox),  
     145                FALSE, TRUE, 0); 
     146 
     147        gtk_box_pack_start (GTK_BOX (vvbox), GTK_WIDGET (priv->progress_bar),  
     148                FALSE, TRUE, 0); 
     149        gtk_box_pack_start (GTK_BOX (vvbox), GTK_WIDGET (priv->instruction_label),  
     150                FALSE, TRUE, 0); 
     151 
     152        gtk_box_pack_start (GTK_BOX (hbox), GTK_WIDGET (back_button),  
     153                FALSE, TRUE, 0); 
    127154 
    128155        gtk_container_add (GTK_CONTAINER (instance), GTK_WIDGET (priv->vbox)); 
    129156 
    130         g_signal_connect (G_OBJECT (priv->back_button), "clicked",  
     157        g_signal_connect (G_OBJECT (back_button), "clicked",  
    131158                G_CALLBACK (on_back_clicked), instance); 
    132159 
     160        return; 
     161} 
     162 
     163static void 
     164foreach_childset (gpointer data, gpointer user_data) 
     165{ 
     166        ChildSet *set = (ChildSet *) data; 
     167        g_object_unref (set->child); 
     168        g_slice_free (ChildSet, set); 
    133169        return; 
    134170} 
     
    139175        TMutShellWindowPriv *priv = TMUT_SHELL_WINDOW_GET_PRIVATE (object); 
    140176 
    141         if (priv->progress_bar) 
    142                 g_object_unref (priv->progress_bar); 
    143         priv->progress_bar = NULL; 
     177        if (priv->childs) { 
     178                g_list_foreach (priv->childs, foreach_childset, NULL); 
     179                g_list_free (priv->childs); 
     180                priv->childs = NULL; 
     181        } 
    144182 
    145183        (*parent_class->finalize) (object); 
  • trunk/src/tmut-shell-window.h

    r12 r16  
    5353 
    5454GType tmut_shell_window_get_type (void); 
    55 TMutShellWindow* tmut_shell_window_new (GtkProgressBar *progress_bar); 
     55TMutShellWindow* tmut_shell_window_new (void); 
    5656 
    57 void tmut_shell_window_set_child (TMutShellWindow *self, TMutShellChild *child); 
     57void tmut_shell_window_set_child (TMutShellWindow *self, TMutShellChild *child, const gchar *instruction); 
     58GtkProgress* tmut_shell_window_get_progress (TMutShellWindow *self); 
    5859 
    5960G_END_DECLS