Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
karudu
/
C-editor
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Pipelines
Snippets
Members
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
ff354c82
authored
Apr 19, 2022
by
karudu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fondi seadistamine, bugfix
parent
747d86ac
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
166 additions
and
106 deletions
ceditor.h
menubar.c
settings.c
settings.h
tab.c
tab.h
textview.c
textview.h
ui.c
ui.h
ceditor.h
View file @
ff354c82
...
@@ -17,8 +17,9 @@ typedef struct
...
@@ -17,8 +17,9 @@ typedef struct
GtkWidget
*
ScrollWindow
;
// Tekstiakna scroll
GtkWidget
*
ScrollWindow
;
// Tekstiakna scroll
GtkWidget
*
StatusBar
;
// Status bar
GtkWidget
*
StatusBar
;
// Status bar
GtkSourceLanguageManager
*
LangManager
;
GtkSourceLanguageManager
*
LangManager
;
// Süntaksi värvimise asjad
GtkSourceLanguage
*
Language
;
GtkSourceLanguage
*
Language
;
gint
MuudetudID
;
// Muudetud teksti signaali ID
}
tab
;
}
tab
;
typedef
struct
typedef
struct
...
...
menubar.c
View file @
ff354c82
...
@@ -23,7 +23,7 @@ void Ava(GtkWidget *Nupp, gpointer Data)
...
@@ -23,7 +23,7 @@ void Ava(GtkWidget *Nupp, gpointer Data)
{
{
ui
*
UI
=
(
ui
*
)
Data
;
ui
*
UI
=
(
ui
*
)
Data
;
tab
*
Tab
=
&
UI
->
Tabid
[
UI
->
PraeguneTab
];
tab
*
Tab
=
&
UI
->
Tabid
[
UI
->
PraeguneTab
];
GtkTextBuffer
*
Puhver
=
Tab
->
Puhver
;
GtkWidget
*
Dialog
=
gtk_file_chooser_dialog_new
(
"Ava fail"
,
NULL
,
GTK_FILE_CHOOSER_ACTION_OPEN
,
GtkWidget
*
Dialog
=
gtk_file_chooser_dialog_new
(
"Ava fail"
,
NULL
,
GTK_FILE_CHOOSER_ACTION_OPEN
,
"Tühista"
,
GTK_RESPONSE_CANCEL
,
"Tühista"
,
GTK_RESPONSE_CANCEL
,
"Ava"
,
GTK_RESPONSE_ACCEPT
,
NULL
);
"Ava"
,
GTK_RESPONSE_ACCEPT
,
NULL
);
...
@@ -40,11 +40,11 @@ void Ava(GtkWidget *Nupp, gpointer Data)
...
@@ -40,11 +40,11 @@ void Ava(GtkWidget *Nupp, gpointer Data)
{
{
if
(
g_utf8_validate
(
Sisu
,
-
1
,
NULL
))
if
(
g_utf8_validate
(
Sisu
,
-
1
,
NULL
))
{
{
gtk_text_buffer_set_text
(
Puhver
,
Sisu
,
-
1
);
// Kopeeri fail puhvrisse
gtk_text_buffer_set_text
(
Tab
->
Puhver
,
Sisu
,
-
1
);
// Kopeeri fail puhvrisse
gtk_text_buffer_set_modified
(
Tab
->
Puhver
,
FALSE
);
// Tekst on muutmata
gtk_text_buffer_set_modified
(
Tab
->
Puhver
,
FALSE
);
// Tekst on muutmata
Tab
->
FailiNimi
=
Nimi
;
Tab
->
FailiNimi
=
Nimi
;
UuendaTabiPealkirja
(
Tab
,
Nimi
);
UuendaTabiPealkirja
(
Tab
,
Nimi
);
UuendaTabMuudetud
(
Tab
);
UuendaTabMuudetud
(
0
,
Tab
);
}
}
else
else
{
{
...
@@ -110,7 +110,7 @@ int SalvestaFail(ui *UI, tab *Tab)
...
@@ -110,7 +110,7 @@ int SalvestaFail(ui *UI, tab *Tab)
UuendaTabiPealkirja
(
Tab
,
Nimi
);
UuendaTabiPealkirja
(
Tab
,
Nimi
);
}
}
UuendaTabMuudetud
(
Tab
);
UuendaTabMuudetud
(
0
,
Tab
);
g_free
(
Sisu
);
g_free
(
Sisu
);
if
(
Dialog
)
gtk_widget_destroy
(
Dialog
);
if
(
Dialog
)
gtk_widget_destroy
(
Dialog
);
...
@@ -175,7 +175,7 @@ void SalvestaNimega(GtkWidget *Nupp, gpointer Data)
...
@@ -175,7 +175,7 @@ void SalvestaNimega(GtkWidget *Nupp, gpointer Data)
UuendaTabiPealkirja
(
Tab
,
Nimi
);
UuendaTabiPealkirja
(
Tab
,
Nimi
);
}
}
UuendaTabMuudetud
(
Tab
);
UuendaTabMuudetud
(
0
,
Tab
);
}
}
else
else
{
{
...
...
settings.c
0 → 100644
View file @
ff354c82
#include "settings.h"
void
FontSeaded
(
GtkWidget
*
Nupp
,
gpointer
Data
)
{
ui
*
UI
=
(
ui
*
)
Data
;
GtkFontChooserDialog
*
FontChooser
=
gtk_font_chooser_dialog_new
(
"Font"
,
NULL
);
char
*
SFondiNimi
=
g_key_file_get_string
(
UI
->
Seaded
,
"Seaded"
,
"font"
,
NULL
);
// Seadistatud fondi nimi
if
(
SFondiNimi
)
{
gtk_font_chooser_set_font
(
FontChooser
,
SFondiNimi
);
g_free
(
SFondiNimi
);
}
int
Vastus
=
gtk_dialog_run
(
GTK_DIALOG
(
FontChooser
));
if
(
Vastus
==
GTK_RESPONSE_OK
)
{
char
*
FondiNimi
=
gtk_font_chooser_get_font
(
FontChooser
);
g_key_file_set_string
(
UI
->
Seaded
,
"Seaded"
,
"font"
,
FondiNimi
);
g_key_file_save_to_file
(
UI
->
Seaded
,
UI
->
SeadedNimi
,
0
);
SeaFont
(
UI
,
FondiNimi
);
// Pane vahekaartidele uus font
g_free
(
FondiNimi
);
}
gtk_widget_destroy
(
FontChooser
);
}
settings.h
0 → 100644
View file @
ff354c82
#ifndef SETTINGS_H
#define SETTINGS_H
#include "ceditor.h"
void
FontSeaded
(
GtkWidget
*
Nupp
,
gpointer
Data
);
#endif // SETTINGS_H
tab.c
View file @
ff354c82
#include "tab.h"
#include "tab.h"
// Loo uus vahekaart ja pane see lõppu
void
LisaTab
(
ui
*
UI
)
{
int
TabidN
=
UI
->
TabidN
;
if
(
TabidN
==
0
)
{
UI
->
Tabid
=
g_malloc
(
sizeof
(
tab
));
// Loo massiiv, kui see pole olemas
}
else
{
UI
->
Tabid
=
g_realloc
(
UI
->
Tabid
,
sizeof
(
tab
)
*
(
TabidN
+
1
));
// Lisa vahekaart massiivi
}
tab
*
Tab
=
&
UI
->
Tabid
[
TabidN
];
UI
->
TabidN
++
;
Tab
->
FailiNimi
=
0
;
// Faili veel pole
Tab
->
Aken
=
UI
->
Aken
;
// Tekstiaken
Tab
->
TextView
=
gtk_source_view_new
();
// Loo tekstiaken
Tab
->
Puhver
=
gtk_text_view_get_buffer
(
GTK_TEXT_VIEW
(
Tab
->
TextView
));
// Tekstiakna teksti puhver
// Scroll window
Tab
->
ScrollWindow
=
gtk_scrolled_window_new
(
NULL
,
NULL
);
// Loo scroll aken
gtk_container_add
(
GTK_CONTAINER
(
Tab
->
ScrollWindow
),
Tab
->
TextView
);
// Scroll aknasse läheb tekstiaken
gtk_scrolled_window_set_policy
(
GTK_SCROLLED_WINDOW
(
Tab
->
ScrollWindow
),
GTK_POLICY_AUTOMATIC
,
GTK_POLICY_AUTOMATIC
);
// Konfigureerimine
gtk_scrolled_window_set_shadow_type
(
GTK_SCROLLED_WINDOW
(
Tab
->
ScrollWindow
),
GTK_SHADOW_ETCHED_IN
);
// Status bar
Tab
->
StatusBar
=
gtk_statusbar_new
();
// Teksti muutuse callback
g_signal_connect
(
Tab
->
Puhver
,
"changed"
,
G_CALLBACK
(
TekstMuudetud
),
Tab
);
// Modified callback
g_signal_connect
(
Tab
->
Puhver
,
"modified-changed"
,
G_CALLBACK
(
TekstModified
),
Tab
);
// Copy/paste lohistamise callback, uuendab samuti
g_signal_connect_object
(
Tab
->
Puhver
,
"mark_set"
,
G_CALLBACK
(
TekstMarkSet
),
Tab
->
StatusBar
,
0
);
// Box
Tab
->
Box
=
gtk_box_new
(
GTK_ORIENTATION_VERTICAL
,
0
);
// Vertikaalne box, 0px vahe
gtk_box_pack_start
(
GTK_BOX
(
Tab
->
Box
),
Tab
->
ScrollWindow
,
TRUE
,
TRUE
,
0
);
gtk_box_pack_start
(
GTK_BOX
(
Tab
->
Box
),
Tab
->
StatusBar
,
FALSE
,
FALSE
,
0
);
// Pealkiri
Tab
->
Pealkiri
=
gtk_label_new
(
"(uus)"
);
Tab
->
PealkiriTekst
=
"(uus)"
;
Tab
->
LangManager
=
gtk_source_language_manager_get_default
();
Tab
->
Language
=
gtk_source_language_manager_get_language
(
Tab
->
LangManager
,
"c"
);
gtk_source_buffer_set_language
(
Tab
->
Puhver
,
Tab
->
Language
);
// Lisa loodud tab notebook'i
gtk_notebook_append_page
(
GTK_NOTEBOOK
(
UI
->
Notebook
),
Tab
->
Box
,
Tab
->
Pealkiri
);
gtk_widget_show_all
(
UI
->
Notebook
);
// Värskenda, et näha oleks
UuendaRidaVeerg
(
GTK_TEXT_BUFFER
(
Tab
->
Puhver
),
GTK_STATUSBAR
(
Tab
->
StatusBar
));
// Uuenda status bar'i, et seal midagi oleks
gtk_source_view_set_show_line_numbers
(
GTK_SOURCE_VIEW
(
Tab
->
TextView
),
TRUE
);
//naita reanumbrid
}
// Kustuta vahekaarti indeksil
// Kustuta vahekaarti indeksil
void
KustutaTab
(
ui
*
UI
,
int
Indeks
)
void
KustutaTab
(
ui
*
UI
,
int
Indeks
)
{
{
...
@@ -94,8 +35,10 @@ void UuendaTabiPealkirja(tab *Tab, char *Nimi)
...
@@ -94,8 +35,10 @@ void UuendaTabiPealkirja(tab *Tab, char *Nimi)
gtk_widget_set_tooltip_text
(
Tab
->
Pealkiri
,
Nimi
);
gtk_widget_set_tooltip_text
(
Tab
->
Pealkiri
,
Nimi
);
}
}
void
UuendaTabMuudetud
(
tab
*
Tab
)
void
UuendaTabMuudetud
(
GtkWidget
*
Puhver
,
gpointer
Data
)
{
{
tab
*
Tab
=
(
tab
*
)
Data
;
if
(
gtk_text_buffer_get_modified
(
Tab
->
Puhver
))
if
(
gtk_text_buffer_get_modified
(
Tab
->
Puhver
))
{
{
char
*
Tekst
=
g_strdup_printf
(
"%s *"
,
gtk_label_get_text
(
Tab
->
Pealkiri
));
char
*
Tekst
=
g_strdup_printf
(
"%s *"
,
gtk_label_get_text
(
Tab
->
Pealkiri
));
...
@@ -145,3 +88,88 @@ int SulgeTab(ui *UI, int Indeks)
...
@@ -145,3 +88,88 @@ int SulgeTab(ui *UI, int Indeks)
KustutaTab
(
UI
,
Indeks
);
KustutaTab
(
UI
,
Indeks
);
return
1
;
return
1
;
}
}
// Sea kõikdele vahekaartidele uus font
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
);
}
}
// Loo uus vahekaart ja pane see lõppu
void
LisaTab
(
ui
*
UI
)
{
int
TabidN
=
UI
->
TabidN
;
if
(
TabidN
==
0
)
{
UI
->
Tabid
=
g_malloc
(
sizeof
(
tab
));
// Loo massiiv, kui see pole olemas
}
else
{
UI
->
Tabid
=
g_realloc
(
UI
->
Tabid
,
sizeof
(
tab
)
*
(
TabidN
+
1
));
// Lisa vahekaart massiivi
// Kuna realloc liigutab vahekaardid mälus uude kohta, siis tuleb
// tekstipuhvrite muutmise callback'ile anda uued viidad
for
(
int
i
=
0
;
i
<
UI
->
TabidN
;
i
++
)
{
tab
*
Tab
=
&
UI
->
Tabid
[
i
];
g_signal_handler_disconnect
(
Tab
->
Puhver
,
Tab
->
MuudetudID
);
Tab
->
MuudetudID
=
g_signal_connect
(
Tab
->
Puhver
,
"modified-changed"
,
G_CALLBACK
(
UuendaTabMuudetud
),
Tab
);
}
}
tab
*
Tab
=
&
UI
->
Tabid
[
TabidN
];
UI
->
TabidN
++
;
Tab
->
FailiNimi
=
0
;
// Faili veel pole
Tab
->
Aken
=
UI
->
Aken
;
// Tekstiaken
Tab
->
TextView
=
gtk_source_view_new
();
// Loo tekstiaken
Tab
->
Puhver
=
gtk_text_view_get_buffer
(
GTK_TEXT_VIEW
(
Tab
->
TextView
));
// Tekstiakna teksti puhver
// Kui font on seadistatud, siis kasuta seda
char
*
FondiNimi
=
g_key_file_get_string
(
UI
->
Seaded
,
"Seaded"
,
"font"
,
NULL
);
if
(
FondiNimi
)
{
gtk_widget_modify_font
(
Tab
->
TextView
,
pango_font_description_from_string
(
FondiNimi
));
g_free
(
FondiNimi
);
}
// Scroll window
Tab
->
ScrollWindow
=
gtk_scrolled_window_new
(
NULL
,
NULL
);
// Loo scroll aken
gtk_container_add
(
GTK_CONTAINER
(
Tab
->
ScrollWindow
),
Tab
->
TextView
);
// Scroll aknasse läheb tekstiaken
gtk_scrolled_window_set_policy
(
GTK_SCROLLED_WINDOW
(
Tab
->
ScrollWindow
),
GTK_POLICY_AUTOMATIC
,
GTK_POLICY_AUTOMATIC
);
// Konfigureerimine
gtk_scrolled_window_set_shadow_type
(
GTK_SCROLLED_WINDOW
(
Tab
->
ScrollWindow
),
GTK_SHADOW_ETCHED_IN
);
// Status bar
Tab
->
StatusBar
=
gtk_statusbar_new
();
// Modified callback
Tab
->
MuudetudID
=
g_signal_connect
(
Tab
->
Puhver
,
"modified-changed"
,
G_CALLBACK
(
UuendaTabMuudetud
),
Tab
);
// Teksti muutuse callback
g_signal_connect_object
(
Tab
->
Puhver
,
"mark_set"
,
G_CALLBACK
(
TekstMarkSet
),
Tab
->
StatusBar
,
0
);
// Box
Tab
->
Box
=
gtk_box_new
(
GTK_ORIENTATION_VERTICAL
,
0
);
// Vertikaalne box, 0px vahe
gtk_box_pack_start
(
GTK_BOX
(
Tab
->
Box
),
Tab
->
ScrollWindow
,
TRUE
,
TRUE
,
0
);
gtk_box_pack_start
(
GTK_BOX
(
Tab
->
Box
),
Tab
->
StatusBar
,
FALSE
,
FALSE
,
0
);
// Pealkiri
Tab
->
Pealkiri
=
gtk_label_new
(
"(uus)"
);
Tab
->
PealkiriTekst
=
"(uus)"
;
// Language manager (süntaksi värvimine)
Tab
->
LangManager
=
gtk_source_language_manager_get_default
();
Tab
->
Language
=
gtk_source_language_manager_get_language
(
Tab
->
LangManager
,
"c"
);
gtk_source_buffer_set_language
(
Tab
->
Puhver
,
Tab
->
Language
);
// Lisa loodud tab notebook'i
gtk_notebook_append_page
(
GTK_NOTEBOOK
(
UI
->
Notebook
),
Tab
->
Box
,
Tab
->
Pealkiri
);
gtk_widget_show_all
(
UI
->
Notebook
);
// Värskenda, et näha oleks
UuendaRidaVeerg
(
GTK_TEXT_BUFFER
(
Tab
->
Puhver
),
GTK_STATUSBAR
(
Tab
->
StatusBar
));
// Uuenda status bar'i, et seal midagi oleks
gtk_source_view_set_show_line_numbers
(
GTK_SOURCE_VIEW
(
Tab
->
TextView
),
TRUE
);
//naita reanumbrid
}
tab.h
View file @
ff354c82
...
@@ -10,5 +10,6 @@ void KustutaTab(ui *UI, int Indeks);
...
@@ -10,5 +10,6 @@ void KustutaTab(ui *UI, int Indeks);
void
UuendaTabiPealkirja
(
tab
*
Tab
,
char
*
Nimi
);
void
UuendaTabiPealkirja
(
tab
*
Tab
,
char
*
Nimi
);
void
TabMuudetud
(
GtkWidget
*
Notebook
,
GtkWidget
*
Tab
,
guint
Indeks
,
gpointer
Data
);
void
TabMuudetud
(
GtkWidget
*
Notebook
,
GtkWidget
*
Tab
,
guint
Indeks
,
gpointer
Data
);
int
SulgeTab
(
ui
*
UI
,
int
Indeks
);
int
SulgeTab
(
ui
*
UI
,
int
Indeks
);
void
SeaFont
(
ui
*
UI
,
char
*
FondiNimi
);
#endif // TAB_H
#endif // TAB_H
textview.c
View file @
ff354c82
#include "textview.h"
#include "textview.h"
// Teksti muutmise callback
void
TekstMuudetud
(
GtkTextBuffer
*
Puhver
,
tab
*
Tab
)
{
UuendaRidaVeerg
(
Tab
->
Puhver
,
Tab
->
StatusBar
);
}
// Teksti modified olek muutus
void
TekstModified
(
GtkTextBuffer
*
Puhver
,
tab
*
Tab
)
{
UuendaTabMuudetud
(
Tab
);
}
// Kutsutakse copy/paste lohistamise korral, praegu lihtsalt uuendab rida/veergu
// Kutsutakse copy/paste lohistamise korral, praegu lihtsalt uuendab rida/veergu
void
TekstMarkSet
(
GtkTextBuffer
*
Puhver
,
const
GtkTextIter
*
new_location
,
GtkTextMark
*
Mark
,
gpointer
Data
)
void
TekstMarkSet
(
GtkTextBuffer
*
Puhver
,
const
GtkTextIter
*
new_location
,
GtkTextMark
*
Mark
,
gpointer
Data
)
{
{
...
...
textview.h
View file @
ff354c82
...
@@ -3,7 +3,6 @@
...
@@ -3,7 +3,6 @@
#include "ceditor.h"
#include "ceditor.h"
void
TekstMuudetud
(
GtkTextBuffer
*
Puhver
,
tab
*
Tab
);
void
TekstModified
(
GtkTextBuffer
*
Puhver
,
tab
*
Tab
);
void
TekstModified
(
GtkTextBuffer
*
Puhver
,
tab
*
Tab
);
void
TekstMarkSet
(
GtkTextBuffer
*
Puhver
,
const
GtkTextIter
*
new_location
,
GtkTextMark
*
Mark
,
gpointer
Data
);
void
TekstMarkSet
(
GtkTextBuffer
*
Puhver
,
const
GtkTextIter
*
new_location
,
GtkTextMark
*
Mark
,
gpointer
Data
);
...
...
ui.c
View file @
ff354c82
...
@@ -58,6 +58,28 @@ ui *LooUI()
...
@@ -58,6 +58,28 @@ ui *LooUI()
gtk_window_set_title
(
GTK_WINDOW
(
UI
->
Aken
),
PEALKIRI
);
// Pealkiri
gtk_window_set_title
(
GTK_WINDOW
(
UI
->
Aken
),
PEALKIRI
);
// Pealkiri
g_signal_connect
(
UI
->
Aken
,
"delete-event"
,
G_CALLBACK
(
SulgeAken
),
UI
);
// Close nupu callback
g_signal_connect
(
UI
->
Aken
,
"delete-event"
,
G_CALLBACK
(
SulgeAken
),
UI
);
// Close nupu callback
// Seadete fail
UI
->
Seaded
=
g_key_file_new
();
char
*
SeadedKaust
=
g_build_filename
(
g_get_home_dir
(),
"ceditor"
,
NULL
);
char
*
SeadedNimi
=
g_build_filename
(
SeadedKaust
,
"settings.ini"
,
NULL
);
UI
->
SeadedNimi
=
strdup
(
SeadedNimi
);
GError
*
Viga
=
NULL
;
// Ava seadete fail
if
(
!
g_key_file_load_from_file
(
UI
->
Seaded
,
SeadedNimi
,
G_KEY_FILE_NONE
,
&
Viga
))
{
// Ei õnnestunud avada
if
(
Viga
->
code
==
G_FILE_ERROR_NOENT
)
// Faili pole olemas, loo see
{
g_mkdir_with_parents
(
SeadedKaust
,
0700
);
g_key_file_save_to_file
(
UI
->
Seaded
,
SeadedNimi
,
NULL
);
}
else
{
printf
(
"Viga settings.ini avamisel: %s
\n
"
,
Viga
->
message
);
}
g_error_free
(
Viga
);
}
// Box
// Box
UI
->
Box
=
gtk_box_new
(
GTK_ORIENTATION_VERTICAL
,
0
);
// Vertikaalne box, 0px vahe
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
gtk_container_add
(
GTK_CONTAINER
(
UI
->
Aken
),
UI
->
Box
);
// Pane box aknasse
...
@@ -79,6 +101,7 @@ ui *LooUI()
...
@@ -79,6 +101,7 @@ ui *LooUI()
UI
->
MenuBar
=
gtk_menu_bar_new
();
// Loo menu bar
UI
->
MenuBar
=
gtk_menu_bar_new
();
// Loo menu bar
GtkWidget
*
FailMenuNupp
=
gtk_menu_item_new_with_label
(
"Fail"
);
// Fail
GtkWidget
*
FailMenuNupp
=
gtk_menu_item_new_with_label
(
"Fail"
);
// Fail
GtkWidget
*
KompMenuNupp
=
gtk_menu_item_new_with_label
(
"Kompileeri"
);
// Kompileeri
GtkWidget
*
KompMenuNupp
=
gtk_menu_item_new_with_label
(
"Kompileeri"
);
// Kompileeri
GtkWidget
*
SeadedMenuNupp
=
gtk_menu_item_new_with_label
(
"Seaded"
);
// Seaded
// Fail menüü
// Fail menüü
GtkWidget
*
FailMenu
=
gtk_menu_new
();
GtkWidget
*
FailMenu
=
gtk_menu_new
();
GtkWidget
*
FailMenuUus
=
gtk_menu_item_new_with_label
(
"Uus vahekaart"
);
// Fail->Uus vahekaart
GtkWidget
*
FailMenuUus
=
gtk_menu_item_new_with_label
(
"Uus vahekaart"
);
// Fail->Uus vahekaart
...
@@ -93,16 +116,21 @@ ui *LooUI()
...
@@ -93,16 +116,21 @@ ui *LooUI()
GtkWidget
*
FailMenuValju
=
gtk_menu_item_new_with_label
(
"Välju"
);
// Fail->Välju
GtkWidget
*
FailMenuValju
=
gtk_menu_item_new_with_label
(
"Välju"
);
// Fail->Välju
// Kompileeri menüü
// Kompileeri menüü
GtkWidget
*
KompMenu
=
gtk_menu_new
();
GtkWidget
*
KompMenu
=
gtk_menu_new
();
GtkWidget
*
KompMenuSeaded
=
gtk_menu_item_new_with_label
(
"
Seaded"
);
// Kompileeri->S
eaded
GtkWidget
*
KompMenuSeaded
=
gtk_menu_item_new_with_label
(
"
Kompilaatori seaded"
);
// Kompileeri->Kompilaatori s
eaded
GtkWidget
*
KompMenuKompileeri
=
gtk_menu_item_new_with_label
(
"Kompileeri"
);
// Kompileeri->Kompileeri
GtkWidget
*
KompMenuKompileeri
=
gtk_menu_item_new_with_label
(
"Kompileeri"
);
// Kompileeri->Kompileeri
GtkWidget
*
KompMenuKaivita
=
gtk_menu_item_new_with_label
(
"Käivita programm"
);
// Kompileeri->Käivita programm
GtkWidget
*
KompMenuKaivita
=
gtk_menu_item_new_with_label
(
"Käivita programm"
);
// Kompileeri->Käivita programm
// Seaded menüü
GtkWidget
*
SeadedMenu
=
gtk_menu_new
();
GtkWidget
*
SeadedMenuFont
=
gtk_menu_item_new_with_label
(
"Teksti font"
);
// Seaded->Teksti font
// Menüü nupud menu bar'i
// Menüü nupud menu bar'i
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
UI
->
MenuBar
),
FailMenuNupp
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
UI
->
MenuBar
),
FailMenuNupp
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
UI
->
MenuBar
),
KompMenuNupp
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
UI
->
MenuBar
),
KompMenuNupp
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
UI
->
MenuBar
),
SeadedMenuNupp
);
// Menüüd nuppudesse
// Menüüd nuppudesse
gtk_menu_item_set_submenu
(
GTK_MENU_ITEM
(
FailMenuNupp
),
FailMenu
);
gtk_menu_item_set_submenu
(
GTK_MENU_ITEM
(
FailMenuNupp
),
FailMenu
);
gtk_menu_item_set_submenu
(
GTK_MENU_ITEM
(
KompMenuNupp
),
KompMenu
);
gtk_menu_item_set_submenu
(
GTK_MENU_ITEM
(
KompMenuNupp
),
KompMenu
);
gtk_menu_item_set_submenu
(
GTK_MENU_ITEM
(
SeadedMenuNupp
),
SeadedMenu
);
// Fail menüü
// Fail menüü
LisaMenuItem
(
UI
,
FailMenu
,
FailMenuUus
,
Uus
,
GDK_KEY_N
,
GDK_CONTROL_MASK
);
// Fail->Uus vahekaart
LisaMenuItem
(
UI
,
FailMenu
,
FailMenuUus
,
Uus
,
GDK_KEY_N
,
GDK_CONTROL_MASK
);
// Fail->Uus vahekaart
MenuSeparator
(
FailMenu
);
MenuSeparator
(
FailMenu
);
...
@@ -114,17 +142,19 @@ ui *LooUI()
...
@@ -114,17 +142,19 @@ ui *LooUI()
MenuSeparator
(
FailMenu
);
MenuSeparator
(
FailMenu
);
LisaMenuItem
(
UI
,
FailMenu
,
FailMenuValju
,
Valju
,
GDK_KEY_Q
,
GDK_CONTROL_MASK
|
GDK_SHIFT_MASK
);
// Fail->Välju
LisaMenuItem
(
UI
,
FailMenu
,
FailMenuValju
,
Valju
,
GDK_KEY_Q
,
GDK_CONTROL_MASK
|
GDK_SHIFT_MASK
);
// Fail->Välju
// Kompileeri menüü
// Kompileeri menüü
LisaMenuItem
(
UI
,
KompMenu
,
KompMenuSeaded
,
KompilaatoriSeaded
,
0
,
0
);
// Kompileeri->
S
eaded
LisaMenuItem
(
UI
,
KompMenu
,
KompMenuSeaded
,
KompilaatoriSeaded
,
0
,
0
);
// Kompileeri->
Kompilaatori s
eaded
MenuSeparator
(
KompMenu
);
MenuSeparator
(
KompMenu
);
LisaMenuItem
(
UI
,
KompMenu
,
KompMenuKompileeri
,
Kompileeri
,
GDK_KEY_C
,
GDK_CONTROL_MASK
|
GDK_SHIFT_MASK
);
// Kompileeri->Kompileeri
LisaMenuItem
(
UI
,
KompMenu
,
KompMenuKompileeri
,
Kompileeri
,
GDK_KEY_C
,
GDK_CONTROL_MASK
|
GDK_SHIFT_MASK
);
// Kompileeri->Kompileeri
LisaMenuItem
(
UI
,
KompMenu
,
KompMenuKaivita
,
KaivitaProgramm
,
GDK_KEY_R
,
GDK_CONTROL_MASK
|
GDK_SHIFT_MASK
);
// Kompileeri->Käivita programm
LisaMenuItem
(
UI
,
KompMenu
,
KompMenuKaivita
,
KaivitaProgramm
,
GDK_KEY_R
,
GDK_CONTROL_MASK
|
GDK_SHIFT_MASK
);
// Kompileeri->Käivita programm
// Seaded menüü
LisaMenuItem
(
UI
,
SeadedMenu
,
SeadedMenuFont
,
FontSeaded
,
0
,
0
);
// Seaded->Teksti font
//ToolBar
//ToolBar
UI
->
ToolBar
=
gtk_toolbar_new
();
UI
->
ToolBar
=
gtk_toolbar_new
();
gtk_toolbar_set_style
(
GTK_TOOLBAR
(
UI
->
ToolBar
),
GTK_TOOLBAR_ICONS
);
gtk_toolbar_set_style
(
GTK_TOOLBAR
(
UI
->
ToolBar
),
GTK_TOOLBAR_ICONS
);
GtkWidget
*
UndoIcon
=
gtk_image_new_from_icon_name
(
GTK_STOCK_UNDO
,
5
);
GtkWidget
*
UndoIcon
=
gtk_image_new_from_icon_name
(
"edit-undo"
,
5
);
UI
->
Undo
=
gtk_tool_button_new
(
UndoIcon
,
"undo"
);
UI
->
Undo
=
gtk_tool_button_new
(
UndoIcon
,
"undo"
);
GtkWidget
*
RedoIcon
=
gtk_image_new_from_icon_name
(
GTK_STOCK_REDO
,
5
);
GtkWidget
*
RedoIcon
=
gtk_image_new_from_icon_name
(
"edit-redo"
,
5
);
UI
->
Redo
=
gtk_tool_button_new
(
RedoIcon
,
"redo"
);
UI
->
Redo
=
gtk_tool_button_new
(
RedoIcon
,
"redo"
);
//nupud toolbarile
//nupud toolbarile
gtk_toolbar_insert
(
GTK_TOOLBAR
(
UI
->
ToolBar
),
UI
->
Undo
,
-
1
);
gtk_toolbar_insert
(
GTK_TOOLBAR
(
UI
->
ToolBar
),
UI
->
Undo
,
-
1
);
...
@@ -137,28 +167,5 @@ ui *LooUI()
...
@@ -137,28 +167,5 @@ ui *LooUI()
gtk_box_pack_start
(
GTK_BOX
(
UI
->
Box
),
UI
->
ToolBar
,
FALSE
,
FALSE
,
0
);
gtk_box_pack_start
(
GTK_BOX
(
UI
->
Box
),
UI
->
ToolBar
,
FALSE
,
FALSE
,
0
);
gtk_box_pack_start
(
GTK_BOX
(
UI
->
Box
),
UI
->
Notebook
,
TRUE
,
TRUE
,
0
);
gtk_box_pack_start
(
GTK_BOX
(
UI
->
Box
),
UI
->
Notebook
,
TRUE
,
TRUE
,
0
);
// Seadete fail
UI
->
Seaded
=
g_key_file_new
();
char
*
SeadedKaust
=
g_build_filename
(
g_get_home_dir
(),
"ceditor"
,
NULL
);
char
*
SeadedNimi
=
g_build_filename
(
SeadedKaust
,
"settings.ini"
,
NULL
);
UI
->
SeadedNimi
=
strdup
(
SeadedNimi
);
GError
*
Viga
=
NULL
;
// Ava seadete fail
if
(
!
g_key_file_load_from_file
(
UI
->
Seaded
,
SeadedNimi
,
G_KEY_FILE_NONE
,
&
Viga
))
{
// Ei õnnestunud avada
if
(
Viga
->
code
==
G_FILE_ERROR_NOENT
)
// Faili pole olemas, loo see
{
g_mkdir_with_parents
(
SeadedKaust
,
0700
);
g_key_file_save_to_file
(
UI
->
Seaded
,
SeadedNimi
,
NULL
);
}
else
{
printf
(
"Viga settings.ini avamisel: %s
\n
"
,
Viga
->
message
);
}
g_error_free
(
Viga
);
}
return
UI
;
return
UI
;
}
}
ui.h
View file @
ff354c82
...
@@ -5,6 +5,7 @@
...
@@ -5,6 +5,7 @@
#include "tab.h"
#include "tab.h"
#include "menubar.h"
#include "menubar.h"
#include "compiler.h"
#include "compiler.h"
#include "settings.h"
#define PEALKIRI "CEditor"
#define PEALKIRI "CEditor"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment