Header for the functions related to Synema's frames table. More...
#include <gtk/gtk.h>
#include "frame-common.h"
#include "frame-table.h"
Go to the source code of this file.
Functions | |
int | table_size_changed (frame_table_t *) |
int | slot_data_resize (frame_table_t *, guint, guint, guint, guint) |
frame_t * | slot_data_get (frame_table_t *, guint, guint) |
void | slot_data_set (frame_table_t *, guint, guint, frame_t *) |
int | table_get_optimal_nb_cols (frame_table_t *) |
int | table_get_optimal_nb_rows (frame_table_t *) |
int | frame_table_size_changed (frame_table_t *, frame_t *, guint, guint, guint, guint) |
int | table_add (frame_table_t *, frame_t *) |
int | table_add_with_coords (frame_table_t *, frame_t *, guint, guint) |
int | table_remove (frame_table_t *, frame_t *) |
int | table_swap_children (frame_table_t *, frame_t *, frame_t *) |
Header for the functions related to Synema's frames table.
This header file contains functions useful for manipulating the GtkTable containing all the frames in Synema's GUI.
Definition in file table-utilities.h.
int frame_table_size_changed | ( | frame_table_t * | , | |
frame_t * | , | |||
guint | , | |||
guint | , | |||
guint | , | |||
guint | ||||
) |
Definition at line 104 of file table-utilities.c.
frame_t* slot_data_get | ( | frame_table_t * | , | |
guint | , | |||
guint | ||||
) |
Definition at line 35 of file table-utilities.c.
int slot_data_resize | ( | frame_table_t * | , | |
guint | , | |||
guint | , | |||
guint | , | |||
guint | ||||
) |
Definition at line 86 of file table-utilities.c.
00087 { 00088 tab->slot_data = g_realloc (tab->slot_data, sizeof (frame_t*) * rows*cols); 00089 00090 guint i,j; 00091 for (i = 0; i < rows; i++) { 00092 for (j = old_cols; j < cols; j++) { 00093 tab->slot_data[cols * i + j] = NULL; 00094 } 00095 } 00096 for (i = old_rows; i < rows; i++) { 00097 for (j = 0; j < old_cols; j++) { 00098 tab->slot_data[cols * i + j] = NULL; 00099 } 00100 } 00101 return 0; 00102 }
void slot_data_set | ( | frame_table_t * | , | |
guint | , | |||
guint | , | |||
frame_t * | ||||
) |
Definition at line 46 of file table-utilities.c.
int table_add | ( | frame_table_t * | , | |
frame_t * | ||||
) |
Definition at line 141 of file table-utilities.c.
00142 { 00143 guint size_x = ((elem->size == NORMAL) ? NORMAL_WIDTH_SLOTS : LARGE_WIDTH_SLOTS); 00144 guint size_y = ((elem->size == NORMAL) ? NORMAL_HEIGHT_SLOTS : LARGE_HEIGHT_SLOTS); 00145 guint columns = 0, rows = 0; 00146 00147 table_size_changed (tab); //FIXME Signal_conect... 00148 tab->children_size[elem->size]++; 00149 00150 if (!slot_data_find_empty_slot (tab, &rows, &columns, size_x, size_y)) { 00151 gtk_table_attach_defaults (GTK_TABLE (tab->table), frame_get_root_widget (elem), columns, columns+1, rows, rows+1); 00152 //FIXME Lorsque la gestion des tailles sera ok, remplacer par: columns, columns+size_x, rows, rows+size_y 00153 //g_print ("Table slot: %d,%d set !\n", rows, columns); 00154 slot_data_set (tab, rows, columns, elem); //TODO regarder la taille 00155 elem->hidden = FALSE; 00156 } /*else { 00157 g_print ("Plus de place, la frame va dans la liste.\n"); //TODO implement list 00158 }*/ 00159 00160 return 0; 00161 }
int table_add_with_coords | ( | frame_table_t * | , | |
frame_t * | , | |||
guint | , | |||
guint | ||||
) |
Definition at line 163 of file table-utilities.c.
00164 { 00165 table_size_changed (tab); //FIXME Signal_conect... 00166 00167 tab->children_size[elem->size]++; 00168 gtk_table_attach_defaults (GTK_TABLE (tab->table), frame_get_root_widget (elem), left, left+1, top, top+1); 00169 elem->hidden = FALSE; 00170 slot_data_set (tab, top, left, elem); //TODO regarder la taille 00171 00172 return 0; 00173 }
int table_get_optimal_nb_cols | ( | frame_table_t * | ) |
Definition at line 110 of file table-utilities.c.
int table_get_optimal_nb_rows | ( | frame_table_t * | ) |
Definition at line 116 of file table-utilities.c.
int table_remove | ( | frame_table_t * | , | |
frame_t * | ||||
) |
Definition at line 176 of file table-utilities.c.
00177 { 00178 GtkWidget *elemwidget = frame_get_root_widget (elem); 00179 //GValue val = {0,}; 00180 int top = 0, left = 0; 00181 guint table_rows, table_cols; 00182 00183 g_object_get (tab->table, "n-columns", &table_cols, "n-rows", &table_rows, NULL); 00184 00185 /* gtk_container_child_get_property (GTK_CONTAINER (table), elemwidget, "top-attach", &val);*/ 00186 /* top = g_value_get_int (&val);*/ 00187 /* g_value_unset (&val);*/ 00188 /* */ 00189 /* gtk_container_child_get_property (GTK_CONTAINER (table), elemwidget, "left-attach", &val);*/ 00190 /* left = g_value_get_int (&val);*/ 00191 /* g_value_unset (&val);*/ 00192 00193 while (slot_data_get (tab, top, left) != elem ) { 00194 //g_print ("Looking at: %d,%d\n", top, left); 00195 if (top < table_rows) { 00196 if (left == (table_cols-1)) { 00197 left = 0; 00198 top++; 00199 } 00200 else { 00201 left++; 00202 } 00203 } else { 00204 g_warning ("table_remove: The frame is not in the table"); 00205 return 1; 00206 } 00207 } 00208 00209 //TODO regarder la taille des frames 00210 00211 //g_print ("Data slot: %d,%d removed !\n",top ,left); 00212 slot_data_set (tab, top, left, NULL); 00213 00214 g_object_ref (elemwidget); 00215 elem->hidden = TRUE; 00216 gtk_container_remove (GTK_CONTAINER (tab->table), elemwidget); 00217 tab->children_size[elem->size]--; 00218 00219 return 0; 00220 }
int table_size_changed | ( | frame_table_t * | ) |
Definition at line 122 of file table-utilities.c.
00123 { 00124 guint table_rows, table_cols; 00125 guint optimal_rows, optimal_cols; 00126 00127 g_object_get (tab->table, "n-columns", &table_cols, "n-rows", &table_rows, NULL); 00128 00129 optimal_rows = table_get_optimal_nb_rows (tab); 00130 optimal_cols = table_get_optimal_nb_cols (tab); 00131 //TODO attention si pas de resize ! 00132 00133 gtk_table_resize (GTK_TABLE (tab->table), optimal_rows, optimal_cols); 00134 slot_data_resize (tab, table_rows, table_cols, optimal_rows, optimal_cols); 00135 00136 // g_print ("The table is now resized to (%d,%d).\n", optimal_rows, optimal_cols); 00137 00138 return 0; 00139 }
int table_swap_children | ( | frame_table_t * | , | |
frame_t * | , | |||
frame_t * | ||||
) |
Definition at line 222 of file table-utilities.c.