Changeset 29
- Timestamp:
- 02/09/06 12:45:18
- Files:
-
- trunk/libtinymailui/Makefile.am (modified) (1 diff)
- trunk/libtinymailui/tny-summary-window-iface.c (added)
- trunk/libtinymailui/tny-summary-window-iface.h (added)
- trunk/tinymail/tny-main.c (modified) (2 diffs)
- trunk/tinymail/tny-summary-window.c (modified) (11 diffs)
- trunk/tinymail/tny-summary-window.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/libtinymailui/Makefile.am
r19 r29 7 7 libtinymailui_1_0_headers = \ 8 8 tny-msg-header-list-model.h \ 9 tny-account-tree-model.h 9 tny-account-tree-model.h \ 10 tny-summary-window-iface.h 10 11 11 12 libtinymailui_1_0_la_SOURCES = \ 12 13 $(libtinymailui_1_0_headers) \ 13 14 tny-msg-header-list-model.c \ 14 tny-account-tree-model.c 15 tny-account-tree-model.c \ 16 tny-summary-window-iface.c 15 17 16 18 libtinymailui_1_0_la_LIBADD = \ trunk/tinymail/tny-main.c
r25 r29 20 20 #include <gtk/gtk.h> 21 21 #include <tny-summary-window.h> 22 #include <tny-summary-window-iface.h> 23 #include <tny-account-store-iface.h> 24 #include <tny-account-store.h> 22 25 23 26 int … … 30 33 31 34 window = GTK_WINDOW (tny_summary_window_new ()); 35 36 tny_summary_window_iface_set_account_store (TNY_SUMMARY_WINDOW_IFACE (window), 37 TNY_ACCOUNT_STORE_IFACE (tny_account_store_get_instance ())); 38 32 39 gtk_widget_show (GTK_WIDGET (window)); 33 40 trunk/tinymail/tny-summary-window.c
r28 r29 33 33 34 34 #include <tny-summary-window.h> 35 #include <tny-summary-window-iface.h> 35 36 36 37 static GObjectClass *parent_class = NULL; 37 38 38 39 40 typedef struct _TnySummaryWindowPriv TnySummaryWindowPriv; 41 42 struct _TnySummaryWindowPriv 43 { 44 TnyAccountStoreIface *account_store; 45 GtkTreeView *mailbox_view, *header_view; 46 }; 47 48 #define TNY_SUMMARY_WINDOW_GET_PRIVATE(o) \ 49 (G_TYPE_INSTANCE_GET_PRIVATE ((o), TNY_SUMMARY_WINDOW_TYPE, TnySummaryWindowPriv)) 50 51 static void 52 reload_accounts (TnySummaryWindowPriv *priv) 53 { 54 TnyAccountStoreIface *account_store = priv->account_store; 55 GtkTreeModel *mailbox_model = GTK_TREE_MODEL (tny_account_tree_model_new ()); 56 const GList* accounts; 57 58 accounts = tny_account_store_iface_get_accounts (account_store); 59 60 while (accounts) 61 { 62 TnyAccountIface *account = accounts->data; 63 64 tny_account_tree_model_add (TNY_ACCOUNT_TREE_MODEL 65 (mailbox_model), account); 66 67 accounts = g_list_next (accounts); 68 } 69 70 gtk_tree_view_set_model (GTK_TREE_VIEW (priv->mailbox_view), mailbox_model); 71 72 return; 73 } 74 75 static void 76 tny_summary_window_set_account_store (TnySummaryWindowIface *self, TnyAccountStoreIface *account_store) 77 { 78 TnySummaryWindowPriv *priv = TNY_SUMMARY_WINDOW_GET_PRIVATE (self); 79 80 if (priv->account_store) 81 g_object_unref (G_OBJECT (priv->account_store)); 82 83 g_object_ref (G_OBJECT (account_store)); 84 85 priv->account_store = account_store; 86 87 reload_accounts (priv); 88 89 return; 90 } 39 91 40 92 static void … … 180 232 { 181 233 TnySummaryWindow *self = (TnySummaryWindow *)instance; 234 TnySummaryWindowPriv *priv = TNY_SUMMARY_WINDOW_GET_PRIVATE (self); 182 235 GtkWindow *window = GTK_WINDOW (self); 236 237 183 238 GtkWidget *hbox; 184 GtkWidget *mailbox_view;185 GtkWidget *header_view;186 239 GtkWidget *mailbox_sw; 187 240 GtkWidget *header_sw; … … 191 244 GtkTreeSelection *select; 192 245 gint t = 0, i = 0; 193 const GList *accounts;194 195 TnyAccountStoreIface *account_store = TNY_ACCOUNT_STORE_IFACE196 (tny_account_store_get_instance ());197 246 198 247 gtk_window_set_title (window, "Tinymail"); … … 212 261 GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); 213 262 214 header_view = gtk_tree_view_new (); 215 gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (header_view), TRUE); 216 gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW(header_view), TRUE); 217 mailbox_view = gtk_tree_view_new (); 218 gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (mailbox_view), TRUE); 219 220 gtk_container_add (GTK_CONTAINER (header_sw), header_view); 221 gtk_container_add (GTK_CONTAINER (mailbox_sw), mailbox_view); 263 priv->header_view = GTK_TREE_VIEW (gtk_tree_view_new ()); 264 265 gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (priv->header_view), TRUE); 266 gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW(priv->header_view), TRUE); 267 268 priv->mailbox_view = GTK_TREE_VIEW (gtk_tree_view_new ()); 269 gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (priv->mailbox_view), TRUE); 270 271 gtk_container_add (GTK_CONTAINER (header_sw), GTK_WIDGET (priv->header_view)); 272 gtk_container_add (GTK_CONTAINER (mailbox_sw), GTK_WIDGET (priv->mailbox_view)); 222 273 223 274 /* mailbox_view columns */ … … 225 276 column = gtk_tree_view_column_new_with_attributes ("Folder", renderer, 226 277 "text", TNY_ACCOUNT_TREE_MODEL_NAME_COLUMN, NULL); 227 gtk_tree_view_append_column (GTK_TREE_VIEW( mailbox_view), column);278 gtk_tree_view_append_column (GTK_TREE_VIEW(priv->mailbox_view), column); 228 279 229 280 renderer = gtk_cell_renderer_text_new (); 230 281 column = gtk_tree_view_column_new_with_attributes ("Folder", renderer, 231 282 "text", TNY_ACCOUNT_TREE_MODEL_UNREAD_COLUMN, NULL); 232 gtk_tree_view_append_column (GTK_TREE_VIEW( mailbox_view), column);283 gtk_tree_view_append_column (GTK_TREE_VIEW(priv->mailbox_view), column); 233 284 234 285 /* header_view columns */ … … 240 291 gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED); 241 292 gtk_tree_view_column_set_fixed_width (column, 200); 242 gtk_tree_view_append_column (GTK_TREE_VIEW(header_view), column); 293 294 gtk_tree_view_append_column (GTK_TREE_VIEW(priv->header_view), column); 243 295 244 296 renderer = gtk_cell_renderer_text_new (); … … 248 300 gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED); 249 301 gtk_tree_view_column_set_fixed_width (column, 200); 250 gtk_tree_view_append_column (GTK_TREE_VIEW(header_view), column); 302 303 gtk_tree_view_append_column (GTK_TREE_VIEW(priv->header_view), column); 251 304 252 305 renderer = gtk_cell_renderer_text_new (); … … 256 309 gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED); 257 310 gtk_tree_view_column_set_fixed_width (column, 200); 258 gtk_tree_view_append_column (GTK_TREE_VIEW(header_view), column); 259 260 mailbox_model = GTK_TREE_MODEL (tny_account_tree_model_new ()); 261 262 263 accounts = tny_account_store_iface_get_accounts (account_store); 264 265 while (accounts) 266 { 267 TnyAccountIface *account = accounts->data; 268 269 tny_account_tree_model_add (TNY_ACCOUNT_TREE_MODEL 270 (mailbox_model), account); 271 272 accounts = g_list_next (accounts); 273 } 274 275 gtk_tree_view_set_model (GTK_TREE_VIEW (mailbox_view), mailbox_model); 276 277 select = gtk_tree_view_get_selection (GTK_TREE_VIEW (mailbox_view)); 311 312 gtk_tree_view_append_column (GTK_TREE_VIEW(priv->header_view), column); 313 314 select = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->mailbox_view)); 315 278 316 gtk_tree_selection_set_mode (select, GTK_SELECTION_SINGLE); 279 317 g_signal_connect (G_OBJECT (select), "changed", 280 G_CALLBACK (on_mailbox_view_tree_selection_changed), header_view); 281 282 283 select = gtk_tree_view_get_selection (GTK_TREE_VIEW (header_view)); 318 G_CALLBACK (on_mailbox_view_tree_selection_changed), priv->header_view); 319 320 select = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->header_view)); 284 321 gtk_tree_selection_set_mode (select, GTK_SELECTION_SINGLE); 285 322 g_signal_connect (G_OBJECT (select), "changed", 286 G_CALLBACK (on_header_view_tree_selection_changed), header_view); 287 288 289 g_signal_connect(G_OBJECT (header_view), "row-activated", 290 G_CALLBACK (on_header_view_tree_row_activated), header_view); 291 323 G_CALLBACK (on_header_view_tree_selection_changed), priv->header_view); 324 325 g_signal_connect(G_OBJECT (priv->header_view), "row-activated", 326 G_CALLBACK (on_header_view_tree_row_activated), priv->header_view); 292 327 293 328 gtk_box_pack_start (GTK_BOX (hbox), mailbox_sw, FALSE, FALSE, 0); … … 311 346 } 312 347 348 static void 349 tny_summary_window_iface_init (gpointer g_iface, gpointer iface_data) 350 { 351 TnySummaryWindowIfaceClass *klass = (TnySummaryWindowIfaceClass *)g_iface; 352 353 klass->set_account_store_func = tny_summary_window_set_account_store; 354 355 return; 356 } 313 357 314 358 static void … … 321 365 322 366 object_class->finalize = tny_summary_window_finalize; 367 368 g_type_class_add_private (object_class, sizeof (TnySummaryWindowPriv)); 323 369 324 370 return; … … 345 391 }; 346 392 393 static const GInterfaceInfo tny_summary_window_iface_info = 394 { 395 (GInterfaceInitFunc) tny_summary_window_iface_init, /* interface_init */ 396 NULL, /* interface_finalize */ 397 NULL /* interface_data */ 398 }; 399 347 400 type = g_type_register_static (GTK_TYPE_WINDOW, 348 401 "TnySummaryWindow", 349 402 &info, 0); 350 403 404 g_type_add_interface_static (type, TNY_SUMMARY_WINDOW_IFACE_TYPE, 405 &tny_summary_window_iface_info); 406 351 407 } 352 408 trunk/tinymail/tny-summary-window.h
r25 r29 47 47 }; 48 48 49 GType tny_summary_window_get_type (void);50 TnySummaryWindow* tny_summary_window_new (void);49 GType tny_summary_window_get_type (void); 50 TnySummaryWindow* tny_summary_window_new (void); 51 51 52 52
