Changeset 12

Show
Ignore:
Timestamp:
10/29/07 23:13:29
Author:
pvanhoof
Message:

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

        • Restructured how the UI works (shell, child)
        • Introduced TMutShellWindow, TMutShellChild
        • Refactored all types to GtkWidgets? in stead of GtkWindows?
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/ChangeLog

    r10 r12  
     12007-10-29  Philip Van Hoof  <pvanhoof@gnome.org> 
     2 
     3        * Restructured how the UI works (shell, child) 
     4        * Introduced TMutShellWindow, TMutShellChild 
     5        * Refactored all types to GtkWidgets in stead of GtkWindows 
     6 
    172007-10-28  Philip Van Hoof  <pvanhoof@gnome.org> 
    28 
  • trunk/src

    • Property svn:ignore changed from Makefile.in tmut .libs .deps Makefile to core .libs .deps tmut Makefile Makefile.in
  • trunk/src/Makefile.am

    r10 r12  
    33bin_PROGRAMS = tmut 
    44 
    5 tmut_SOURCES = main.c \ 
     5tmut_SOURCES = tmut-shared.h tmut-main.c \ 
    66        tmut-platform-factory.c \ 
    77        tmut-platform-factory.h \ 
     
    1313        tmut-msg-view.h \ 
    1414        tmut-ringtone-player.c \ 
    15         tmut-ringtone-player.h  
     15        tmut-ringtone-player.h \ 
     16        tmut-shell-window.c \ 
     17        tmut-shell-window.h \ 
     18        tmut-shell-child.c \ 
     19        tmut-shell-child.h 
    1620          
    1721 
  • trunk/src/tmut-folder-view.c

    r10 r12  
    2121#include "tmut-msg-view.h" 
    2222#include "tmut-ringtone-player.h" 
     23#include "tmut-shell-window.h" 
     24#include "tmut-shell-child.h" 
    2325 
    2426#include <tny-folder-monitor.h> 
     
    3638        TnyFolder *folder; 
    3739        TnyFolderObserver *ringtone_player; 
     40        TMutShellWindow *shell; 
    3841}; 
    3942 
     
    5861on_active_folder_got_set (TnyFolder *folder, gboolean cancelled, GError *err, gpointer user_data) 
    5962{ 
     63        g_object_unref (user_data); 
     64 
    6065        return; 
    6166} 
     
    103108 
    104109        tny_folder_refresh_async (folder, on_active_folder_got_set,  
    105                         status_update, self); 
     110                        status_update, g_object_ref (self)); 
    106111 
    107112        gtk_tree_view_set_model (priv->headers_treeview, model); 
     
    113118tmut_folder_view_on_got_msg (TnyFolder *folder, gboolean canceled, TnyMsg *msg, GError *err, gpointer user_data) 
    114119{ 
     120        TMutFolderView *self = TMUT_FOLDER_VIEW (user_data); 
     121 
    115122        if (!canceled && !err) { 
    116123                TnyMsgView *view = tmut_msg_view_new (); 
    117124                tny_msg_view_set_msg (view, msg); 
    118125                gtk_widget_show (GTK_WIDGET (view)); 
    119         } 
     126 
     127                tmut_shell_window_set_child ( 
     128                        tmut_shell_child_get_window (TMUT_SHELL_CHILD (self)),  
     129                        TMUT_SHELL_CHILD (view)); 
     130 
     131        } 
     132 
     133        g_object_unref (user_data); 
    120134 
    121135        return; 
     
    144158                        if (folder) { 
    145159                                tny_folder_get_msg_async (folder, header,  
    146                                         tmut_folder_view_on_got_msg, status_update, self); 
     160                                        tmut_folder_view_on_got_msg, status_update, 
     161                                        g_object_ref (self)); 
     162 
    147163                                g_object_unref (folder); 
    148164                        } 
     
    161177        TMutFolderView *self = (TMutFolderView *) instance; 
    162178        TMutFolderViewPriv *priv = TMUT_FOLDER_VIEW_GET_PRIVATE (self); 
    163         GtkWindow *window = GTK_WINDOW (self); 
    164179        GtkCellRenderer *renderer; 
    165180        GtkTreeViewColumn *column; 
     
    176191        gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), 
    177192                GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); 
    178         gtk_container_add (GTK_CONTAINER (window), sw); 
     193 
     194        gtk_box_pack_start (GTK_BOX (self), GTK_WIDGET (sw),  
     195                FALSE, TRUE, 0); 
     196 
    179197        gtk_widget_show (sw); 
    180198 
     
    250268        return TMUT_FOLDER_VIEW (self); 
    251269} 
     270 
     271 
     272TMutShellWindow*  
     273tmut_folder_view_get_window (TMutShellChild *self) 
     274{ 
     275        TMutFolderViewPriv *priv = TMUT_FOLDER_VIEW_GET_PRIVATE (self); 
     276        return priv->shell; 
     277} 
     278 
     279void  
     280tmut_folder_view_set_window (TMutShellChild *self, TMutShellWindow *window) 
     281{ 
     282        TMutFolderViewPriv *priv = TMUT_FOLDER_VIEW_GET_PRIVATE (self); 
     283        priv->shell = window; 
     284} 
     285 
     286static void 
     287tmut_shell_child_init (gpointer g, gpointer iface_data) 
     288{ 
     289        TMutShellChildIface *klass = (TMutShellChildIface *)g; 
     290 
     291        klass->get_window_func = tmut_folder_view_get_window; 
     292        klass->set_window_func = tmut_folder_view_set_window; 
     293 
     294        return; 
     295} 
     296 
    252297 
    253298GType  
     
    271316                }; 
    272317 
    273                 type = g_type_register_static (GTK_TYPE_WINDOW, 
     318                static const GInterfaceInfo tmut_shell_child_info =  
     319                { 
     320                  (GInterfaceInitFunc) tmut_shell_child_init, /* interface_init */ 
     321                  NULL,         /* interface_finalize */ 
     322                  NULL          /* interface_data */ 
     323                }; 
     324 
     325                type = g_type_register_static (GTK_TYPE_VBOX, 
    274326                        "TMutFolderView", 
    275327                        &info, 0); 
     328 
     329                g_type_add_interface_static (type, TMUT_TYPE_SHELL_CHILD,  
     330                        &tmut_shell_child_info); 
     331 
    276332        } 
    277333 
  • trunk/src/tmut-folder-view.h

    r4 r12  
    4040struct _TMutFolderView 
    4141{ 
    42         GtkWindow parent; 
     42        GtkVBox parent; 
    4343}; 
    4444 
    4545struct _TMutFolderViewClass 
    4646{ 
    47         GtkWindowClass parent_class; 
     47        GtkVBoxClass parent_class; 
    4848}; 
    4949 
  • trunk/src/tmut-main.c

    r11 r12  
    2525#include "tmut-platform-factory.h" 
    2626#include "tmut-menu-view.h" 
     27#include "tmut-shell-window.h" 
    2728 
    2829int  
     
    3435        TnyAccountStoreView *view; 
    3536        GtkProgressBar *progressbar; 
    36         GtkWidget *box; 
    3737 
    3838        if (!g_thread_supported ())  
     
    4444        gtk_init (&argc, &argv); 
    4545 
    46         window = gtk_window_new (GTK_WINDOW_TOPLEVEL); 
    47         gtk_window_set_title (GTK_WINDOW (window), "TMut"); 
    48  
    49         box = gtk_vbox_new (FALSE, 0); 
    50         gtk_widget_show (GTK_WIDGET (box)); 
    5146        progressbar = GTK_PROGRESS_BAR (gtk_progress_bar_new ()); 
    5247        gtk_widget_show (GTK_WIDGET (progressbar)); 
    53         gtk_box_pack_start (GTK_BOX (box), GTK_WIDGET (progressbar), FALSE, TRUE, 0); 
     48 
     49        window = GTK_WIDGET (tmut_shell_window_new (progressbar)); 
     50        gtk_window_set_title (GTK_WINDOW (window), "TMut"); 
    5451 
    5552        platfact = tmut_platform_factory_get_instance (); 
    5653        account_store = tny_platform_factory_new_account_store (platfact); 
    5754 
    58         view = TNY_ACCOUNT_STORE_VIEW (tmut_menu_view_new (GTK_PROGRESS (progressbar))); 
     55        view = TNY_ACCOUNT_STORE_VIEW ( 
     56                tmut_menu_view_new (GTK_PROGRESS (progressbar))); 
    5957        gtk_widget_show (GTK_WIDGET (view)); 
    60         gtk_box_pack_start (GTK_BOX (box), GTK_WIDGET (view), TRUE, TRUE, 0); 
     58 
     59        tmut_shell_window_set_child (TMUT_SHELL_WINDOW (window),  
     60                TMUT_SHELL_CHILD (view)); 
     61 
    6162        tny_account_store_view_set_account_store (view, account_store); 
    6263 
    63         gtk_container_add (GTK_CONTAINER (window), box); 
    6464        g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), 0); 
    6565 
  • trunk/src/tmut-menu-view.c

    r6 r12  
    2020#include "tmut-menu-view.h" 
    2121#include "tmut-folder-view.h" 
     22#include "tmut-shell-window.h" 
     23#include "tmut-shell-child.h" 
    2224 
    2325#include <tny-gtk-folder-store-tree-model.h> 
     
    3436        GtkProgress *progress; 
    3537        GtkComboBox *accounts_combo; 
    36         TMutFolderView *folder_view
     38        TMutShellWindow *shell
    3739}; 
    3840 
     
    103105} 
    104106 
    105 static void  
    106 on_folder_view_destroy (GtkWidget *widget, gpointer user_data) 
    107 { 
    108         TMutMenuViewPriv *priv = TMUT_MENU_VIEW_GET_PRIVATE (user_data); 
    109         priv->folder_view = NULL; 
    110         return; 
    111 } 
    112107 
    113108static void 
     
    131126                { 
    132127                        TnyFolder *folder; 
     128                        TMutFolderView *view; 
    133129 
    134130                        gtk_tree_model_get (model, &iter,  
     
    136132                                &folder, -1); 
    137133 
    138                         if (!priv->folder_view) { 
    139                                 priv->folder_view = tmut_folder_view_new (priv->progress); 
    140                                 g_signal_connect (G_OBJECT (priv->folder_view), "destroy",  
    141                                         G_CALLBACK (on_folder_view_destroy), self); 
    142                         } 
    143  
    144                         tmut_folder_view_set_active_folder (priv->folder_view, folder); 
    145                         gtk_widget_show (GTK_WIDGET (priv->folder_view)); 
     134                        view = tmut_folder_view_new (priv->progress); 
     135                        tmut_folder_view_set_active_folder (view, folder); 
     136                        gtk_widget_show (GTK_WIDGET (view)); 
     137 
     138                        tmut_shell_window_set_child ( 
     139                                tmut_shell_child_get_window (TMUT_SHELL_CHILD (self)),  
     140                                TMUT_SHELL_CHILD (view)); 
    146141 
    147142                        g_object_unref (folder); 
     
    175170 
    176171        priv->progress = NULL; 
    177         priv->folder_view = NULL; 
    178172 
    179173        priv->accounts_combo = GTK_COMBO_BOX (gtk_combo_box_new ()); 
     
    232226        TMutMenuViewPriv *priv = TMUT_MENU_VIEW_GET_PRIVATE (object); 
    233227 
    234         if (priv->folder_view) 
    235                 gtk_widget_destroy (GTK_WIDGET (priv->folder_view)); 
    236  
    237228        if (priv->progress) 
    238229                g_object_unref (priv->progress); 
    239230 
    240231        (*parent_class->finalize) (object); 
     232        return; 
     233} 
     234 
     235TMutShellWindow*  
     236tmut_menu_view_get_window (TMutShellChild *self) 
     237{ 
     238        TMutMenuViewPriv *priv = TMUT_MENU_VIEW_GET_PRIVATE (self); 
     239        return priv->shell; 
     240} 
     241 
     242void  
     243tmut_menu_view_set_window (TMutShellChild *self, TMutShellWindow *window) 
     244{ 
     245        TMutMenuViewPriv *priv = TMUT_MENU_VIEW_GET_PRIVATE (self); 
     246        priv->shell = window; 
     247} 
     248 
     249static void 
     250tmut_shell_child_init (gpointer g, gpointer iface_data) 
     251{ 
     252        TMutShellChildIface *klass = (TMutShellChildIface *)g; 
     253 
     254        klass->get_window_func = tmut_menu_view_get_window; 
     255        klass->set_window_func = tmut_menu_view_set_window; 
     256 
    241257        return; 
    242258} 
     
    304320                }; 
    305321 
    306  
    307322                static const GInterfaceInfo tny_account_store_view_info =  
    308323                { 
     
    312327                }; 
    313328 
     329                static const GInterfaceInfo tmut_shell_child_info =  
     330                { 
     331                  (GInterfaceInitFunc) tmut_shell_child_init, /* interface_init */ 
     332                  NULL,         /* interface_finalize */ 
     333                  NULL          /* interface_data */ 
     334                }; 
     335 
    314336                type = g_type_register_static (GTK_TYPE_VBOX, 
    315337                        "TMutMenuView", 
     
    319341                        &tny_account_store_view_info); 
    320342 
     343                g_type_add_interface_static (type, TMUT_TYPE_SHELL_CHILD,  
     344                        &tmut_shell_child_info); 
     345 
     346 
    321347        } 
    322348 
  • trunk/src/tmut-msg-view.c

    r3 r12  
    2222 
    2323#include "tmut-msg-view.h" 
     24#include "tmut-shell-window.h" 
     25#include "tmut-shell-child.h" 
    2426 
    2527#include <tny-gtk-msg-view.h> 
     
    2931typedef struct _TMutMsgViewPriv TMutMsgViewPriv; 
    3032 
    31 struct _TMutMsgViewPriv 
    32 
     33struct _TMutMsgViewPriv { 
     34        TMutShellWindow *shell; 
    3335}; 
    3436 
     
    5759tmut_msg_view_instance_init (GTypeInstance *instance, gpointer g_class) 
    5860{ 
    59         tny_gtk_msg_window_set_view (TNY_GTK_MSG_WINDOW (instance),  
    60                         tny_gtk_msg_view_new ()); 
    6161        return; 
    6262} 
     
    7070} 
    7171 
     72 
     73TMutShellWindow*  
     74tmut_msg_view_get_window (TMutShellChild *self) 
     75{ 
     76        TMutMsgViewPriv *priv = TMUT_MSG_VIEW_GET_PRIVATE (self); 
     77        return priv->shell; 
     78} 
     79 
     80void  
     81tmut_msg_view_set_window (TMutShellChild *self, TMutShellWindow *window) 
     82{ 
     83        TMutMsgViewPriv *priv = TMUT_MSG_VIEW_GET_PRIVATE (self); 
     84        priv->shell = window; 
     85} 
     86 
     87static void 
     88tmut_shell_child_init (gpointer g, gpointer iface_data) 
     89{ 
     90        TMutShellChildIface *klass = (TMutShellChildIface *)g; 
     91 
     92        klass->get_window_func = tmut_msg_view_get_window; 
     93        klass->set_window_func = tmut_msg_view_set_window; 
     94 
     95        return; 
     96} 
    7297 
    7398static void  
     
    106131                  NULL 
    107132                }; 
    108                 type = g_type_register_static (TNY_TYPE_GTK_MSG_WINDOW, 
     133 
     134                static const GInterfaceInfo tmut_shell_child_info =  
     135                { 
     136                  (GInterfaceInitFunc) tmut_shell_child_init, /* interface_init */ 
     137                  NULL,         /* interface_finalize */ 
     138                  NULL          /* interface_data */ 
     139                }; 
     140 
     141                type = g_type_register_static (TNY_TYPE_GTK_MSG_VIEW, 
    109142                        "TMutMsgView", 
    110143                        &info, 0); 
     144 
     145                g_type_add_interface_static (type, TMUT_TYPE_SHELL_CHILD,  
     146                        &tmut_shell_child_info); 
     147 
    111148        } 
    112149 
  • trunk/src/tmut-msg-view.h

    r3 r12  
    1 #ifndef TNY_TMUT_VIEW_H 
    2 #define TNY_TMUT_VIEW_H 
     1#ifndef TMUT_MSG_VIEW_H 
     2#define TMUT_MSG_VIEW_H 
    33 
    44/* TMut 
     
    2525#include <tny-shared.h> 
    2626 
    27 #include <tny-gtk-msg-window.h> 
     27#include <tny-gtk-msg-view.h> 
    2828 
    2929G_BEGIN_DECLS 
     
    4141struct _TMutMsgView 
    4242{ 
    43         TnyGtkMsgWindow parent; 
     43        TnyGtkMsgView parent; 
    4444}; 
    4545 
    4646struct _TMutMsgViewClass 
    4747{ 
    48         TnyGtkMsgWindowClass parent_class; 
     48        TnyGtkMsgViewClass parent_class; 
    4949}; 
    5050