aboutsummaryrefslogtreecommitdiff
path: root/src/stylesheet.c
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.org.uk>2011-09-25 23:01:35 +0200
committerThomas White <taw@bitwiz.org.uk>2011-09-25 23:01:35 +0200
commite760803ec701fa79564547462ed82b6f34dc80da (patch)
tree3ef645074b4add5b7f718ef6341e8272ca0f4076 /src/stylesheet.c
parent1dbcef5a7428a7132b746653af671b3a15fc7951 (diff)
More updates...
Diffstat (limited to 'src/stylesheet.c')
-rw-r--r--src/stylesheet.c107
1 files changed, 93 insertions, 14 deletions
diff --git a/src/stylesheet.c b/src/stylesheet.c
index b4cc11e..1e5b77b 100644
--- a/src/stylesheet.c
+++ b/src/stylesheet.c
@@ -183,7 +183,22 @@ static void style_changed_sig(GtkComboBox *combo,
n = gtk_combo_box_get_active(GTK_COMBO_BOX(combo));
s->cur_style = s->ss->styles[n];
- /* FIXME: Handle default style */
+
+ if ( n == 0 ) {
+ gtk_widget_set_sensitive(s->offset_x, FALSE);
+ gtk_widget_set_sensitive(s->offset_y, FALSE);
+ gtk_widget_set_sensitive(s->use_max, FALSE);
+ gtk_widget_set_sensitive(s->max_width, FALSE);
+ gtk_widget_set_sensitive(s->halign, FALSE);
+ gtk_widget_set_sensitive(s->valign, FALSE);
+ } else {
+ gtk_widget_set_sensitive(s->offset_x, TRUE);
+ gtk_widget_set_sensitive(s->offset_y, TRUE);
+ gtk_widget_set_sensitive(s->use_max, TRUE);
+ gtk_widget_set_sensitive(s->max_width, TRUE);
+ gtk_widget_set_sensitive(s->halign, TRUE);
+ gtk_widget_set_sensitive(s->valign, TRUE);
+ }
gtk_spin_button_set_value(GTK_SPIN_BUTTON(s->margin_left),
s->cur_style->margin_left);
@@ -204,8 +219,9 @@ static void style_changed_sig(GtkComboBox *combo,
gtk_combo_box_set_active(GTK_COMBO_BOX(s->valign),
s->cur_style->valign);
- gtk_widget_set_sensitive(s->max_width,
- s->cur_style->use_max_width);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(s->use_max),
+ s->cur_style->use_max_width);
+ gtk_widget_set_sensitive(s->max_width, s->cur_style->use_max_width);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(s->max_width),
s->cur_style->max_width);
@@ -233,7 +249,7 @@ static void do_layout(struct _stylesheetwindow *s, GtkWidget *b)
box = gtk_hbox_new(FALSE, 5);
gtk_box_pack_start(GTK_BOX(b), box, FALSE, FALSE, 5);
- label = gtk_label_new("Element:");
+ label = gtk_label_new("Style:");
gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 0);
combo = gtk_combo_box_new_text();
@@ -359,27 +375,22 @@ static void do_layout(struct _stylesheetwindow *s, GtkWidget *b)
G_CALLBACK(max_changed_sig), s);
/* Font/colour stuff */
- table = gtk_table_new(3, 2, FALSE);
- gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 5);
- gtk_table_set_row_spacings(GTK_TABLE(table), 5.0);
- gtk_table_set_col_spacings(GTK_TABLE(table), 5.0);
-
label = gtk_label_new("Font:");
gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1);
+ gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 3, 4);
s->text_font = gtk_font_button_new_with_font("Sans 12");
box = gtk_hbox_new(FALSE, 0);
- gtk_table_attach_defaults(GTK_TABLE(table), box, 1, 2, 0, 1);
+ gtk_table_attach_defaults(GTK_TABLE(table), box, 1, 2, 3, 4);
gtk_box_pack_start(GTK_BOX(box), s->text_font, FALSE, FALSE, 0);
g_signal_connect(G_OBJECT(s->text_font), "font-set",
G_CALLBACK(text_font_set_sig), s);
label = gtk_label_new("Colour:");
gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2);
+ gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 4, 5);
s->text_colour = gtk_color_button_new();
box = gtk_hbox_new(FALSE, 0);
- gtk_table_attach_defaults(GTK_TABLE(table), box, 1, 2, 1, 2);
+ gtk_table_attach_defaults(GTK_TABLE(table), box, 1, 2, 4, 5);
gtk_box_pack_start(GTK_BOX(box), s->text_colour, FALSE, FALSE, 0);
g_signal_connect(G_OBJECT(s->text_colour), "color-set",
G_CALLBACK(text_colour_set_sig), s);
@@ -407,9 +418,12 @@ static struct style *new_style(StyleSheet *ss, const char *name)
sty = malloc(sizeof(*sty));
if ( sty == NULL ) return NULL;
+ sty->name = strdup(name);
+
n = ss->n_styles;
styles_new = realloc(ss->styles, (n+1)*sizeof(sty));
if ( styles_new == NULL ) {
+ free(sty->name);
free(sty);
return NULL;
}
@@ -452,6 +466,45 @@ static void default_stylesheet(StyleSheet *ss)
sty->offset_x = 0.0;
sty->offset_y = 0.0; /* irrelevant */
+ sty = new_style(ss, "Slide credit");
+ sty->font = strdup("Sans 30");
+ sty->colour = strdup("#000000000000"); /* Black */
+ sty->alpha = 1.0;
+ sty->margin_left = 20.0;
+ sty->margin_right = 20.0;
+ sty->margin_top = 20.0;
+ sty->margin_bottom = 20.0;
+ sty->halign = J_CENTER;
+ sty->valign = V_CENTER;
+ sty->offset_x = +200.0;
+ sty->offset_y = -300.0;
+
+ sty = new_style(ss, "Slide date");
+ sty->font = strdup("Sans 30");
+ sty->colour = strdup("#000000000000"); /* Black */
+ sty->alpha = 1.0;
+ sty->margin_left = 20.0;
+ sty->margin_right = 20.0;
+ sty->margin_top = 20.0;
+ sty->margin_bottom = 20.0;
+ sty->halign = J_CENTER;
+ sty->valign = V_CENTER;
+ sty->offset_x = +200.0;
+ sty->offset_y = -300.0;
+
+ sty = new_style(ss, "Slide number");
+ sty->font = strdup("Sans 30");
+ sty->colour = strdup("#000000000000"); /* Black */
+ sty->alpha = 1.0;
+ sty->margin_left = 20.0;
+ sty->margin_right = 20.0;
+ sty->margin_top = 20.0;
+ sty->margin_bottom = 20.0;
+ sty->halign = J_CENTER;
+ sty->valign = V_CENTER;
+ sty->offset_x = +200.0;
+ sty->offset_y = -300.0;
+
sty = new_style(ss, "Presentation title");
sty->font = strdup("Sans 50");
sty->colour = strdup("#000000000000"); /* Black */
@@ -477,6 +530,19 @@ static void default_stylesheet(StyleSheet *ss)
sty->valign = V_CENTER;
sty->offset_x = +200.0;
sty->offset_y = -300.0;
+
+ sty = new_style(ss, "Presentation date");
+ sty->font = strdup("Sans 30");
+ sty->colour = strdup("#000000000000"); /* Black */
+ sty->alpha = 1.0;
+ sty->margin_left = 20.0;
+ sty->margin_right = 20.0;
+ sty->margin_top = 20.0;
+ sty->margin_bottom = 20.0;
+ sty->halign = J_CENTER;
+ sty->valign = V_CENTER;
+ sty->offset_x = +200.0;
+ sty->offset_y = -300.0;
}
@@ -563,7 +629,7 @@ StylesheetWindow *open_stylesheet(struct presentation *p)
text_box = gtk_vbox_new(FALSE, 0);
gtk_container_set_border_width(GTK_CONTAINER(text_box), 12);
gtk_notebook_append_page(GTK_NOTEBOOK(nb), text_box,
- gtk_label_new("Slide layout"));
+ gtk_label_new("Styles"));
do_layout(s, text_box);
background_box = gtk_vbox_new(FALSE, 0);
@@ -580,3 +646,16 @@ StylesheetWindow *open_stylesheet(struct presentation *p)
return s;
}
+
+
+struct style *find_style(StyleSheet *ss, const char *name)
+{
+ int i;
+ for ( i=0; i<ss->n_styles; i++ ) {
+ if ( strcmp(ss->styles[i]->name, name) == 0 ) {
+ return ss->styles[i];
+ }
+ }
+
+ return NULL;
+}