Source code for functions of the frame actions toolbutton menu. More...
#include <glib.h>
#include "application-data.h"
#include "frame-actions.h"
#include "frame-utilities.h"
#include "plugins.h"
Go to the source code of this file.
Functions | |
void | frame_action_set_machine (GtkTreeView *view, GtkTreePath *path, GtkTreeViewColumn *column, gpointer user_data) |
void | frame_action_set_period (GtkTreeView *view, GtkTreePath *path, GtkTreeViewColumn *column, gpointer user_data) |
void | frame_action_setup_widgets () |
Setups the frame actions panel's widgets (connects handlers, etc). |
Source code for functions of the frame actions toolbutton menu.
This file contains functions that are linked to the menu items of the frame actions toolbutton menu.
Definition in file frame-actions.c.
void frame_action_set_machine | ( | GtkTreeView * | view, | |
GtkTreePath * | path, | |||
GtkTreeViewColumn * | column, | |||
gpointer | user_data | |||
) |
Definition at line 118 of file frame-actions.c.
00119 { 00120 synema_instance_t *inst = synema_instance (); 00121 GList *list = NULL; 00122 gpointer machine = NULL; 00123 GtkTreeIter iter; 00124 GtkTreeModel *model = gtk_tree_view_get_model (view); 00125 00126 if (gtk_tree_model_get_iter (model, &iter, path)) { 00127 gtk_tree_model_get (model, &iter, 1, &machine, -1); 00128 00129 list = inst->current_table->frames_list; 00130 if (list) { 00131 do { 00132 frame_try_set_machine (list->data, machine); 00133 } while ((list = g_list_next (list)) != NULL); 00134 } 00135 } 00136 }
void frame_action_set_period | ( | GtkTreeView * | view, | |
GtkTreePath * | path, | |||
GtkTreeViewColumn * | column, | |||
gpointer | user_data | |||
) |
Definition at line 140 of file frame-actions.c.
00141 { 00142 synema_instance_t *inst = synema_instance (); 00143 GList *list = NULL; 00144 gpointer period = NULL; 00145 GtkTreeIter iter; 00146 GtkTreeModel *model = gtk_tree_view_get_model (view); 00147 00148 if (gtk_tree_model_get_iter (model, &iter, path)) { 00149 gtk_tree_model_get (model, &iter, 1, &period, -1); 00150 00151 list = inst->current_table->frames_list; 00152 if (list) { 00153 do { 00154 frame_try_set_period (list->data, period); 00155 } while ((list = g_list_next (list)) != NULL); 00156 } 00157 } 00158 }
void frame_action_setup_widgets | ( | ) |
Setups the frame actions panel's widgets (connects handlers, etc).
This function connects the frame actions panel's gtk widgets to their respective handlers.
Definition at line 162 of file frame-actions.c.
00163 { 00164 synema_instance_t *inst = synema_instance (); 00165 gchar *name = NULL; 00166 GList *iter = NULL; 00167 GList *list = NULL; 00168 GList *prev = NULL; 00169 GtkCellRenderer *renderer = NULL; 00170 GtkListStore *store = NULL; 00171 GtkTreeIter treeiter; 00172 GtkTreeViewColumn *column = NULL; 00173 GtkWidget *mac_view = (GtkWidget *) gtk_builder_get_object (inst->builder, "action_treeview_set_machine"); 00174 GtkWidget *prd_view = (GtkWidget *) gtk_builder_get_object (inst->builder, "action_treeview_set_period"); 00175 00176 00177 // Setting up the time period tree view 00178 renderer = gtk_cell_renderer_text_new (); 00179 column = gtk_tree_view_column_new_with_attributes ("Name", renderer, 00180 "text", 0, NULL); 00181 gtk_tree_view_append_column (GTK_TREE_VIEW (prd_view), column); 00182 00183 store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_POINTER); 00184 gtk_tree_view_set_model (GTK_TREE_VIEW(prd_view), GTK_TREE_MODEL(store)); 00185 g_signal_connect (prd_view, "row-activated", G_CALLBACK (frame_action_set_period), NULL); 00186 00187 00188 // Getting the list of time periods for all plugins 00189 iter = inst->plugins_list; 00190 if (iter) { 00191 do { 00192 list = g_list_concat (list, plugin_get_time_periods (iter->data)); 00193 } while ((iter = g_list_next (iter)) != NULL); 00194 } 00195 00196 list = g_list_sort (list, time_period_cmp_func); 00197 iter = list; 00198 if (iter) { 00199 name = time_period_get_display_name (iter->data, TRUE); 00200 gtk_list_store_append (store, &treeiter); 00201 gtk_list_store_set (store, &treeiter, 0, name, 1, iter->data, -1); 00202 g_free (name); 00203 prev = iter; 00204 while ((iter = g_list_next (iter)) != NULL) { 00205 if (time_period_cmp (prev->data, iter->data)) { 00206 name = time_period_get_display_name (iter->data, TRUE); 00207 gtk_list_store_append (store, &treeiter); 00208 gtk_list_store_set (store, &treeiter, 0, name, 1, iter->data, -1); 00209 g_free (name); 00210 } 00211 prev = iter; 00212 } 00213 } 00214 00215 g_list_free (list); 00216 g_object_unref (store); 00217 00218 00219 // Setting up the machine tree view 00220 renderer = gtk_cell_renderer_text_new (); 00221 column = gtk_tree_view_column_new_with_attributes ("Name", renderer, 00222 "text", 0, NULL); 00223 gtk_tree_view_append_column (GTK_TREE_VIEW (mac_view), column); 00224 00225 store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_POINTER); 00226 gtk_tree_view_set_model (GTK_TREE_VIEW(mac_view), GTK_TREE_MODEL(store)); 00227 g_signal_connect (mac_view, "row-activated", G_CALLBACK (frame_action_set_machine), NULL); 00228 00229 00230 // Filling the machine view 00231 if (inst->machines_list) { 00232 iter = inst->machines_list; 00233 do { 00234 gtk_list_store_append (store, &treeiter); 00235 gtk_list_store_set (store, &treeiter, 0, machine_get_display_name (iter->data), 1, iter->data, -1); 00236 } while ((iter = g_list_next (iter)) != NULL); 00237 } 00238 gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (store), 0, GTK_SORT_ASCENDING); 00239 00240 g_object_unref (store); 00241 }