diff --git a/src/callbacks.c b/src/callbacks.c index dd02b08..874f94a 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -129,6 +129,30 @@ on_print_activate (GtkAction * menuitem, gpointer user_data) gui_editor_print (app->editor); } +void on_font_select_activate (GtkAction * menuitem, gpointer user_data) +{ + GtkWidget *font_selection_dialog = NULL; + gchar *font_name = NULL; + gint action = 0; + g_assert (app->editor); + font_selection_dialog = gtk_font_selection_dialog_new ("Select Font"); + action = gtk_dialog_run (font_selection_dialog); + switch (action) + { + case GTK_RESPONSE_OK: + font_name = gtk_font_selection_dialog_get_font_name(font_selection_dialog); + if (font_name) + { + gui_editor_set_font (app->editor, font_name); + g_free(font_name); + } + break; + default: + break; + } + + gtk_widget_destroy(font_selection_dialog); +} void on_quit1_activate (GtkMenuItem * menuitem, gpointer user_data) diff --git a/src/callbacks.h b/src/callbacks.h index 3f4b1cc..d34c946 100644 --- a/src/callbacks.h +++ b/src/callbacks.h @@ -39,6 +39,8 @@ G_MODULE_EXPORT void on_save_as1_activate (GtkMenuItem * menuitem, gpointer user G_MODULE_EXPORT void on_print_activate (GtkAction * menuitem, gpointer user_data); +G_MODULE_EXPORT void on_font_select_activate (GtkAction * menuitem, gpointer user_data); + G_MODULE_EXPORT void on_quit1_activate (GtkMenuItem * menuitem, gpointer user_data); G_MODULE_EXPORT void on_registers1_activate (GtkMenuItem * menuitem, gpointer user_data); diff --git a/src/interface.c b/src/interface.c index f7279a4..080dc3c 100644 --- a/src/interface.c +++ b/src/interface.c @@ -50,6 +50,7 @@ static const GtkActionEntry entries[] = { { "Save", GTK_STOCK_SAVE, NULL, NULL, N_("Save file"), G_CALLBACK(on_save1_activate) }, { "SaveAs", GTK_STOCK_SAVE_AS, NULL, "S", N_("Save file as"), G_CALLBACK(on_save_as1_activate) }, { "Print", GTK_STOCK_PRINT, NULL, "P", N_("Print program"), G_CALLBACK(on_print_activate) }, + { "Font", GTK_STOCK_SELECT_FONT, NULL, "f", N_("Select Font"), G_CALLBACK(on_font_select_activate) }, { "Quit", GTK_STOCK_QUIT, NULL, NULL, NULL, G_CALLBACK(on_quit1_activate) }, { "Registers", NULL, N_("_Registers"), NULL, N_("Reset Registers"), G_CALLBACK(on_registers1_activate) }, { "Flags", NULL, N_("_Flags"), NULL, N_("Reset Flags"), G_CALLBACK(on_flags1_activate) }, @@ -84,6 +85,7 @@ static const char *ui_description = " " " " " " + " " " " " " " "