Commit af0e2e24 by Herman Ounas

Merge branch 'Karl' into Herman

parents 769ed207 2bb9f0a0
......@@ -15,7 +15,7 @@ typedef struct
char *PealkiriTekst; // Originaalne pealkirja tekst
GtkWidget *Box; // Vahekaardi box
GtkWidget *TextView; // Vahekaardi tekstiaken
GtkTextView *Puhver; // Vahekaardi tekstipuhver
GtkSourceBuffer *Puhver; // Vahekaardi tekstipuhver
GtkWidget *ScrollWindow; // Tekstiakna scroll
GtkWidget *StatusBar; // Status bar
......@@ -35,7 +35,7 @@ typedef struct
GtkWidget *MenuBar; // Ülaosa menüü
GtkWidget *Notebook; // Notebook vahekaartidega
GtkWidget *ToolBar; //Tool bar
GtkWidget *AccelGroup; // Accel group nuppude jaoks
GtkWidget *AccelGroup; // Accel group nuppude hotkey'de jaoks
GdkPixbuf *Icon; //akna ikoon
......@@ -59,6 +59,10 @@ typedef struct
GtkSourceStyleScheme *Scheme;
GtkSourceStyleSchemeChooser *SchemeChooser;
// SourceView stiil
GtkSourceStyleSchemeManager *SchemeManager;
GtkSourceStyleSchemeChooser *SchemeChooser;
GKeyFile *Seaded; // Seadete fail
char *SeadedNimi; // Seadete faili nimi
} ui;
......
......@@ -25,3 +25,70 @@ void FontSeaded(GtkWidget *Nupp, gpointer Data)
gtk_widget_destroy(FontChooser);
}
void CheckboxVajutatud(GtkWidget *Nupp, gpointer Data)
{
ui *UI = (ui *)Data;
gboolean Olek = gtk_toggle_button_get_active(Nupp);
if(Olek) // Sees
{
SeaVarvimine(UI, 1);
g_key_file_set_boolean(UI->Seaded, "Seaded", "varvi_suntaksi", 1);
}
else // Väljas
{
SeaVarvimine(UI, 0);
g_key_file_set_boolean(UI->Seaded, "Seaded", "varvi_suntaksi", 0);
}
g_key_file_save_to_file(UI->Seaded, UI->SeadedNimi, 0);
}
void SeaUusStiil(GtkWidget *nupp, gpointer Data)
{
ui *UI = (ui *)Data;
GtkSourceStyleScheme *Stiil = gtk_source_style_scheme_chooser_get_style_scheme(UI->SchemeChooser);
SeaStiil(UI, Stiil);
// Salvesta stiili ID ära
gchar *StiilID = gtk_source_style_scheme_get_id(Stiil);
g_key_file_set_string(UI->Seaded, "Seaded", "sourceview_stiil", StiilID);
g_key_file_save_to_file(UI->Seaded, UI->SeadedNimi, 0);
}
void SVarvSeaded(GtkWidget *Nupp, gpointer Data)
{
ui *UI = (ui *)Data;
GtkWindow *Aken = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size(Aken, 300, 100);
gtk_window_set_title(Aken, "Süntaksi värvimine");
gtk_window_set_type_hint(Aken, GDK_WINDOW_TYPE_HINT_DIALOG);
GtkBox *HBox1 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 8);
GtkLabel *LabelValiStiil = gtk_label_new("Vali stiil:");
GtkWidget *ChooserButton = gtk_source_style_scheme_chooser_button_new();
gtk_box_pack_start(HBox1, GTK_WIDGET(LabelValiStiil), FALSE, FALSE, 8);
gtk_box_pack_start(HBox1, GTK_WIDGET(ChooserButton), FALSE, FALSE, 0);
GtkWidget *Checkbox = gtk_check_button_new_with_label("Värvi süntaksi");
gtk_toggle_button_set_active(Checkbox, 1);
// Kui süntaksi värvimise valik on salvestatud, siis kasuta seda
GError *VViga = NULL;
gboolean Varvimine = g_key_file_get_boolean(UI->Seaded, "Seaded", "varvi_suntaksi", &VViga);
if(!VViga) gtk_toggle_button_set_active(Checkbox, Varvimine);
else g_error_free(VViga);
g_signal_connect(Checkbox, "toggled", G_CALLBACK(CheckboxVajutatud), UI);
GtkWidget *ApplyButton = gtk_button_new_with_label("Salvesta stiil");
GtkBox *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
gtk_container_add(GTK_CONTAINER(Aken), box);
gtk_box_pack_start(box, GTK_WIDGET(HBox1), FALSE, FALSE, 4);
gtk_box_pack_start(box, GTK_WIDGET(Checkbox), FALSE, FALSE, 4);
gtk_box_pack_start(box, GTK_WIDGET(ApplyButton), FALSE, FALSE, 8);
UI->SchemeChooser = ChooserButton;
g_signal_connect(ApplyButton, "clicked", G_CALLBACK(SeaUusStiil), UI);
gtk_widget_show_all(Aken);
}
......@@ -4,5 +4,6 @@
#include "ceditor.h"
void FontSeaded(GtkWidget *Nupp, gpointer Data);
void SVarvSeaded(GtkWidget *Nupp, gpointer Data);
#endif // SETTINGS_H
......@@ -175,6 +175,23 @@ void SeaFont(ui *UI, char *FondiNimi)
for(int i = 0; i < UI->TabidN; i++)
{
gtk_widget_modify_font(UI->Tabid[i].TextView, pango_font_description_from_string(FondiNimi));
gtk_widget_show_all(UI->Tabid[i].TextView);
}
}
// Sea kõikdele vahekaartidele uus SourceView stiil
void SeaStiil(ui *UI, GtkSourceStyleScheme *Stiil)
{
for(int i = 0; i < UI->TabidN; i++)
{
gtk_source_buffer_set_style_scheme(UI->Tabid[i].Puhver, Stiil);
}
}
// Sea kõikdele vahekaartidele süntaksi värvimise valik
void SeaVarvimine(ui *UI, gboolean Varvi)
{
for(int i = 0; i < UI->TabidN; i++)
{
gtk_source_buffer_set_highlight_syntax(UI->Tabid[i].Puhver, Varvi);
}
}
......@@ -12,5 +12,7 @@ void UuendaTabiPealkirja(tab *Tab, char *Nimi);
void TabMuudetud(GtkWidget *Notebook, GtkWidget *Tab, guint Indeks, gpointer Data);
int SulgeTab(ui *UI, int Indeks);
void SeaFont(ui *UI, char *FondiNimi);
void SeaStiil(ui *UI, GtkSourceStyleScheme *Stiil);
void SeaVarvimine(ui *UI, gboolean Varvi);
#endif // TAB_H
......@@ -37,6 +37,12 @@ gboolean SulgeAken(GtkWidget *Nupp, GdkEvent *Event, gpointer Data)
if(Sulge(UI))
{
// Salvesta akna pikkus ja laius
int Pikkus, Laius;
gtk_window_get_size(UI->Aken, &Laius, &Pikkus);
g_key_file_set_integer(UI->Seaded, "Seaded", "akna_pikkus", Pikkus);
g_key_file_set_integer(UI->Seaded, "Seaded", "akna_laius", Laius);
g_key_file_save_to_file(UI->Seaded, UI->SeadedNimi, 0);
gtk_main_quit();
return FALSE;
} else return TRUE;
......@@ -46,7 +52,15 @@ gboolean SulgeAken(GtkWidget *Nupp, GdkEvent *Event, gpointer Data)
void Valju(GtkWidget *Nupp, gpointer Data)
{
ui *UI = (ui *)Data;
if(Sulge(UI)) gtk_main_quit();
if(Sulge(UI))
{
// Salvesta akna pikkus ja laius
int Pikkus, Laius;
gtk_window_get_size(UI->Aken, &Laius, &Pikkus);
g_key_file_set_integer(UI->Seaded, "Seaded", "akna_pikkus", Pikkus);
g_key_file_set_integer(UI->Seaded, "Seaded", "akna_laius", Laius);
g_key_file_save_to_file(UI->Seaded, UI->SeadedNimi, 0);
gtk_main_quit();
}
void UndoFunc(GtkWidget *Nupp, gpointer Data){
......@@ -63,6 +77,7 @@ void RedoFunc(GtkWidget *Nupp, gpointer Data){
}
}
// Lisa menüüsse menu item
void LisaMenuItem(ui *UI, GtkWidget *Menu, GtkWidget *MenuItem, void *Callback, guint Nupp, GdkModifierType NuppMask)
{
......@@ -107,6 +122,19 @@ ui *LooUI()
g_error_free(Viga);
}
// Loe failist akna pikkus ja laius, kui on olemas
gint AknaPikkus = 600;
gint AknaLaius = 800;
Viga = NULL;
gint Pikkus = g_key_file_get_integer(UI->Seaded, "Seaded", "akna_pikkus", &Viga);
if(!Viga) AknaPikkus = Pikkus;
else g_error_free(Viga);
Viga = NULL;
gint Laius = g_key_file_get_integer(UI->Seaded, "Seaded", "akna_laius", &Viga);
if(!Viga) AknaLaius = Laius;
else g_error_free(Viga);
gtk_window_set_default_size(UI->Aken, AknaLaius, AknaPikkus);
// Box
UI->Box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); // Vertikaalne box, 0px vahe
gtk_container_add(GTK_CONTAINER(UI->Aken), UI->Box); // Pane box aknasse
......@@ -115,6 +143,9 @@ ui *LooUI()
UI->Notebook = gtk_notebook_new();
g_signal_connect(UI->Notebook, "switch-page", G_CALLBACK(TabMuudetud), UI); // Tab'i muutmise callback
// SourceView stiil
UI->SchemeManager = gtk_source_style_scheme_manager_get_default();
// Loo esimene tab
UI->TabidN = 0;
LisaTab(UI);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment