Changeset 19
- Timestamp:
- 10/31/07 23:40:38
- Files:
-
- trunk/ChangeLog (modified) (1 diff)
- trunk/src/tmut-folder-view.c (modified) (3 diffs)
- trunk/src/tmut-folder-view.h (modified) (2 diffs)
- trunk/src/tmut-msg-view.c (modified) (4 diffs)
- trunk/src/tmut-msg-view.h (modified) (2 diffs)
- trunk/src/tmut-shell-window.c (modified) (6 diffs)
- trunk/src/tmut-shell-window.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/ChangeLog
r18 r19 6 6 with a bunch of buttons and scrolled windows in it 7 7 * Made creating the buttons for TMutMsgView a virtual method 8 * Made certain pieces in TMutShellWindow virtual 8 9 9 10 2007-10-29 Philip Van Hoof <pvanhoof@gnome.org> trunk/src/tmut-folder-view.c
r16 r19 44 44 45 45 46 47 void 48 tmut_folder_view_on_folder_move_activated (GObject *sender, TMutFolderView *self) 49 { 50 TMutFolderViewPriv *priv = TMUT_FOLDER_VIEW_GET_PRIVATE (self); 51 52 g_print ("move folder\n"); 53 54 return; 55 } 56 57 void 58 tmut_folder_view_on_folder_create_activated (GObject *sender, TMutFolderView *self) 59 { 60 TMutFolderViewPriv *priv = TMUT_FOLDER_VIEW_GET_PRIVATE (self); 61 62 g_print ("create folder\n"); 63 64 return; 65 } 66 67 void 68 tmut_folder_view_on_folder_delete_activated (GObject *sender, TMutFolderView *self) 69 { 70 TMutFolderViewPriv *priv = TMUT_FOLDER_VIEW_GET_PRIVATE (self); 71 72 g_print ("delete folder\n"); 73 74 return; 75 } 76 77 void 78 tmut_folder_view_on_message_delete_activated (GObject *sender, TMutFolderView *self) 79 { 80 TMutFolderViewPriv *priv = TMUT_FOLDER_VIEW_GET_PRIVATE (self); 81 82 g_print ("delete message\n"); 83 84 return; 85 } 86 87 void 88 tmut_folder_view_on_message_move_activated (GObject *sender, TMutFolderView *self) 89 { 90 TMutFolderViewPriv *priv = TMUT_FOLDER_VIEW_GET_PRIVATE (self); 91 92 g_print ("move message\n"); 93 94 return; 95 } 96 97 static void 98 popup_the_actions_menu (GtkButton *button, gpointer user_data) 99 { 100 GtkMenu *menu = (GtkMenu *) user_data; 101 102 gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, 103 0, gtk_get_current_event_time ()); 104 105 return; 106 } 107 108 static void 109 tmut_folder_view_create_menu_default (TMutFolderView *self) 110 { 111 TMutFolderViewPriv *priv = TMUT_FOLDER_VIEW_GET_PRIVATE (self); 112 GtkMenu *menu; 113 GtkWidget *fcreate_menuitem, *fmove_menuitem, *fdel_menuitem; 114 GtkWidget *mdel_menuitem, *mmove_menuitem; 115 GtkButton *menu_button; 116 117 menu_button = GTK_BUTTON (gtk_button_new_with_label ("Actions")); 118 119 menu = GTK_MENU (gtk_menu_new ()); 120 121 fcreate_menuitem = gtk_menu_item_new_with_label ("Create new folder"); 122 fmove_menuitem = gtk_menu_item_new_with_label ("Copy or move a folder"); 123 fdel_menuitem = gtk_menu_item_new_with_label ("Delete a folder"); 124 mdel_menuitem = gtk_menu_item_new_with_label ("Delete a message"); 125 mmove_menuitem = gtk_menu_item_new_with_label ("Move a message"); 126 127 gtk_widget_show (fcreate_menuitem); 128 gtk_widget_show (fmove_menuitem); 129 gtk_widget_show (fdel_menuitem); 130 gtk_widget_show (mdel_menuitem); 131 gtk_widget_show (mmove_menuitem); 132 gtk_widget_show (GTK_WIDGET (menu)); 133 134 gtk_widget_show (GTK_WIDGET (menu_button)); 135 136 gtk_menu_prepend (menu, fcreate_menuitem); 137 gtk_menu_prepend (menu, fmove_menuitem); 138 gtk_menu_prepend (menu, fdel_menuitem); 139 gtk_menu_prepend (menu, mdel_menuitem); 140 gtk_menu_prepend (menu, mmove_menuitem); 141 142 gtk_menu_attach_to_widget (menu, GTK_WIDGET (menu_button), NULL); 143 144 g_signal_connect (G_OBJECT (menu_button), "clicked", 145 G_CALLBACK (popup_the_actions_menu), menu); 146 147 g_signal_connect (G_OBJECT (fcreate_menuitem), "activate", 148 G_CALLBACK (tmut_folder_view_on_folder_create_activated), self); 149 g_signal_connect (G_OBJECT (fmove_menuitem), "activate", 150 G_CALLBACK (tmut_folder_view_on_folder_move_activated), self); 151 g_signal_connect (G_OBJECT (fdel_menuitem), "activate", 152 G_CALLBACK (tmut_folder_view_on_folder_delete_activated), self); 153 g_signal_connect (G_OBJECT (mdel_menuitem), "activate", 154 G_CALLBACK (tmut_folder_view_on_message_delete_activated), self); 155 g_signal_connect (G_OBJECT (mmove_menuitem), "activate", 156 G_CALLBACK (tmut_folder_view_on_message_move_activated), self); 157 158 gtk_box_pack_start (GTK_BOX (self), GTK_WIDGET (menu_button), FALSE, TRUE, 0); 159 160 return; 161 } 162 46 163 static void 47 164 status_update (GObject *sender, TnyStatus *status, gpointer user_data) … … 214 331 G_CALLBACK (on_msg_selected), self); 215 332 333 TMUT_FOLDER_VIEW_GET_CLASS (self)->create_menu_func (self); 334 216 335 return; 217 336 } … … 242 361 243 362 object_class->finalize = tmut_folder_view_finalize; 363 364 class->create_menu_func = tmut_folder_view_create_menu_default; 244 365 245 366 g_type_class_add_private (object_class, sizeof (TMutFolderViewPriv)); trunk/src/tmut-folder-view.h
r16 r19 46 46 { 47 47 GtkVBoxClass parent_class; 48 49 /* virtuals */ 50 51 /* Override this one if you want to provide your own menu items for 52 * rename folder, create folder, move© folder, delete msg, copy&move 53 * msg and delete folder. The construction of this type will call this. 54 * Note that @self here is a GtkVBox and that you can add your widgets 55 * to it. */ 56 57 void (*create_menu_func) (TMutFolderView *self); 48 58 }; 49 59 … … 53 63 void tmut_folder_view_set_active_folder (TMutFolderView *self, TnyFolder *folder); 54 64 65 /* Preimplemented handlers for your action performers */ 66 void tmut_folder_view_on_folder_move_activated (GObject *sender, TMutFolderView *self); 67 void tmut_folder_view_on_folder_create_activated (GObject *sender, TMutFolderView *self); 68 void tmut_folder_view_on_folder_delete_activated (GObject *sender, TMutFolderView *self); 69 void tmut_folder_view_on_message_delete_activated (GObject *sender, TMutFolderView *self); 70 void tmut_folder_view_on_message_move_activated (GObject *sender, TMutFolderView *self); 71 55 72 G_END_DECLS 56 73 trunk/src/tmut-msg-view.c
r18 r19 43 43 44 44 45 static void 46 on_reply_clicked (GtkButton *button, gpointer user_data) 47 { 48 TMutMsgViewPriv *priv = TMUT_MSG_VIEW_GET_PRIVATE (user_data); 49 50 return; 51 } 52 53 54 static void 55 on_forward_clicked (GtkButton *button, gpointer user_data) 56 { 57 TMutMsgViewPriv *priv = TMUT_MSG_VIEW_GET_PRIVATE (user_data); 58 59 return; 60 } 61 62 63 static void 64 tmut_msg_view_create_buttons_default (TMutMsgView *self) 45 46 void 47 tmut_msg_view_on_reply_clicked (GObject *sender, TMutMsgView *self) 48 { 49 TMutMsgViewPriv *priv = TMUT_MSG_VIEW_GET_PRIVATE (self); 50 51 g_print ("reply to message\n"); 52 53 return; 54 } 55 56 57 void 58 tmut_msg_view_on_forward_clicked (GObject *sender, TMutMsgView *self) 59 { 60 TMutMsgViewPriv *priv = TMUT_MSG_VIEW_GET_PRIVATE (self); 61 62 g_print ("forward message\n"); 63 64 return; 65 } 66 67 68 static void 69 tmut_msg_view_create_menu_default (TMutMsgView *self) 65 70 { 66 71 TMutMsgViewPriv *priv = TMUT_MSG_VIEW_GET_PRIVATE (self); … … 77 82 78 83 g_signal_connect (G_OBJECT (priv->reply_button), "clicked", 79 G_CALLBACK ( on_reply_clicked), self);84 G_CALLBACK (tmut_msg_view_on_reply_clicked), self); 80 85 g_signal_connect (G_OBJECT (priv->forward_button), "clicked", 81 G_CALLBACK ( on_forward_clicked), self);86 G_CALLBACK (tmut_msg_view_on_forward_clicked), self); 82 87 83 88 return; … … 233 238 gtk_box_pack_start (GTK_BOX (instance), GTK_WIDGET (priv->sw), TRUE, TRUE, 0); 234 239 235 TMUT_MSG_VIEW_GET_CLASS (instance)->create_ buttons_func ((TMutMsgView *) instance);240 TMUT_MSG_VIEW_GET_CLASS (instance)->create_menu_func ((TMutMsgView *) instance); 236 241 237 242 tmut_msg_view_set_view (TMUT_MSG_VIEW (instance), … … 285 290 object_class->finalize = tmut_msg_view_finalize; 286 291 287 class->create_ buttons_func = tmut_msg_view_create_buttons_default;292 class->create_menu_func = tmut_msg_view_create_menu_default; 288 293 289 294 g_type_class_add_private (object_class, sizeof (TMutMsgViewPriv)); trunk/src/tmut-msg-view.h
r18 r19 48 48 GtkVBoxClass parent_class; 49 49 50 void (*create_buttons_func) (TMutMsgView *self); 50 /* virtuals */ 51 52 /* Override this one if you want to provide your own menu items for 53 * reply and forward. The construction of this type will call this. Note 54 * that @self here is a GtkVBox and that you can add your widgets to it. */ 55 56 void (*create_menu_func) (TMutMsgView *self); 51 57 }; 52 58 … … 56 62 void tmut_msg_view_set_view (TMutMsgView *self, TnyMsgView *view); 57 63 64 /* Preimplemented handlers for your action performers */ 65 void tmut_msg_view_on_reply_clicked (GObject *sender, TMutMsgView *self); 66 void tmut_msg_view_on_forward_clicked (GObject *sender, TMutMsgView *self); 67 58 68 G_END_DECLS 59 69 trunk/src/tmut-shell-window.c
r16 r19 47 47 tmut_shell_window_set_child (TMutShellWindow *self, TMutShellChild *child, const gchar *instruction) 48 48 { 49 TMUT_SHELL_WINDOW_GET_CLASS (self)->set_child_func (self, child, instruction); 50 return; 51 } 52 53 static void 54 tmut_shell_window_set_child_default (TMutShellWindow *self, TMutShellChild *child, const gchar *instruction) 55 { 49 56 TMutShellWindowPriv *priv = TMUT_SHELL_WINDOW_GET_PRIVATE (self); 50 57 ChildSet *set = g_slice_new0 (ChildSet); … … 112 119 tmut_shell_window_get_progress (TMutShellWindow *self) 113 120 { 121 return TMUT_SHELL_WINDOW_GET_CLASS (self)->get_progress_func (self); 122 } 123 124 static GtkProgress* 125 tmut_shell_window_get_progress_default (TMutShellWindow *self) 126 { 114 127 TMutShellWindowPriv *priv = TMUT_SHELL_WINDOW_GET_PRIVATE (self); 115 128 … … 118 131 119 132 120 static void 121 tmut_shell_window_instan ce_init (GTypeInstance *instance, gpointer g_class)133 static void 134 tmut_shell_window_instantiate_default (TMutShellWindow *instance) 122 135 { 123 136 TMutShellWindowPriv *priv = TMUT_SHELL_WINDOW_GET_PRIVATE (instance); 137 124 138 GtkWidget *hbox, *vvbox, *back_button; 125 139 … … 144 158 gtk_box_pack_start (GTK_BOX (hbox), GTK_WIDGET (vvbox), 145 159 FALSE, TRUE, 0); 146 147 160 gtk_box_pack_start (GTK_BOX (vvbox), GTK_WIDGET (priv->progress_bar), 148 161 FALSE, TRUE, 0); 149 162 gtk_box_pack_start (GTK_BOX (vvbox), GTK_WIDGET (priv->instruction_label), 150 163 FALSE, TRUE, 0); 151 152 164 gtk_box_pack_start (GTK_BOX (hbox), GTK_WIDGET (back_button), 153 165 FALSE, TRUE, 0); … … 157 169 g_signal_connect (G_OBJECT (back_button), "clicked", 158 170 G_CALLBACK (on_back_clicked), instance); 171 } 172 173 static void 174 tmut_shell_window_instance_init (GTypeInstance *instance, gpointer g_class) 175 { 176 if (TMUT_SHELL_WINDOW_GET_CLASS (instance)->instantiate_func) 177 TMUT_SHELL_WINDOW_GET_CLASS (instance)->instantiate_func ((TMutShellWindow *) instance); 159 178 160 179 return; … … 194 213 parent_class = g_type_class_peek_parent (class); 195 214 object_class = (GObjectClass*) class; 215 216 class->set_child_func = tmut_shell_window_set_child_default; 217 class->get_progress_func = tmut_shell_window_get_progress_default; 218 class->instantiate_func = tmut_shell_window_instantiate_default; 196 219 197 220 object_class->finalize = tmut_shell_window_finalize; trunk/src/tmut-shell-window.h
r16 r19 50 50 { 51 51 GtkWindowClass parent_class; 52 53 /* virtuals */ 54 55 void (*set_child_func) (TMutShellWindow *self, TMutShellChild *child, const gchar *instruction); 56 GtkProgress* (*get_progress_func) (TMutShellWindow *self); 57 58 /* If you set this one to NULL, it wont ever be called for and you'll 59 * get an empty-everything. Note, though, that you do need to implement 60 * tmut_shell_window_set_child and tmut_shell_window_get_progress 61 * somehow. Overriding this, and it's up to you! */ 62 63 void (*instantiate_func) (TMutShellWindow *self); 64 52 65 }; 53 66
