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
3879d569
authored
Mar 30, 2022
by
karudu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Kompilaatori seadistamise aken, seadete fail
parent
28835234
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
154 additions
and
15 deletions
ceditor.h
compiler.c
compiler.h
tab.c
ui.c
ui.h
ceditor.h
View file @
3879d569
...
@@ -8,7 +8,6 @@ typedef struct
...
@@ -8,7 +8,6 @@ typedef struct
{
{
GtkWidget
*
Aken
;
// Programmi aken
GtkWidget
*
Aken
;
// Programmi aken
char
*
FailiNimi
;
// Viit faili nimele, 0 kui nime veel pole
char
*
FailiNimi
;
// Viit faili nimele, 0 kui nime veel pole
int
OnMuudetud
;
// Kas teksti on muudetud
GtkWidget
*
Pealkiri
;
// Vahekaardi pealkiri
GtkWidget
*
Pealkiri
;
// Vahekaardi pealkiri
char
*
PealkiriTekst
;
// Originaalne pealkirja tekst
char
*
PealkiriTekst
;
// Originaalne pealkirja tekst
...
@@ -44,6 +43,9 @@ typedef struct
...
@@ -44,6 +43,9 @@ typedef struct
//toolbari nupud
//toolbari nupud
GtkToolItem
*
Undo
;
//undo nupp
GtkToolItem
*
Undo
;
//undo nupp
GtkToolItem
*
Redo
;
//redo nupp
GtkToolItem
*
Redo
;
//redo nupp
GKeyFile
*
Seaded
;
// Seadete fail
char
*
SeadedNimi
;
// Seadete faili nimi
}
ui
;
}
ui
;
#endif // CEDITOR_H
#endif // CEDITOR_H
compiler.c
0 → 100644
View file @
3879d569
#include "compiler.h"
// Salvesta kompilaatori seaded ja sulge aken
void
SalvestaSeaded
(
GtkWidget
*
Nupp
,
gpointer
Data
)
{
puhvrid
*
Puhvrid
=
(
puhvrid
*
)
Data
;
g_key_file_set_string
(
Puhvrid
->
Seaded
,
"Kompilaator"
,
"nimi"
,
gtk_entry_buffer_get_text
(
Puhvrid
->
PuhverNimi
));
g_key_file_set_string
(
Puhvrid
->
Seaded
,
"Kompilaator"
,
"seaded"
,
gtk_entry_buffer_get_text
(
Puhvrid
->
PuhverSeaded
));
g_key_file_set_string
(
Puhvrid
->
Seaded
,
"Kompilaator"
,
"asukoht"
,
gtk_entry_buffer_get_text
(
Puhvrid
->
PuhverAsukoht
));
g_key_file_save_to_file
(
Puhvrid
->
Seaded
,
Puhvrid
->
SeadedNimi
,
0
);
gtk_widget_destroy
(
GTK_WIDGET
(
Puhvrid
->
Aken
));
g_free
(
Puhvrid
);
}
// Sulge aken
void
SulgeSeaded
(
GtkWidget
*
Nupp
,
gpointer
Data
)
{
puhvrid
*
Puhvrid
=
(
puhvrid
*
)
Data
;
gtk_widget_destroy
(
GTK_WIDGET
(
Puhvrid
->
Aken
));
g_free
(
Puhvrid
);
}
// Kompilaatori seadete aken
void
KompilaatoriSeaded
(
GtkWidget
*
Nupp
,
gpointer
Data
)
{
ui
*
UI
=
(
ui
*
)
Data
;
GtkWindow
*
Aken
=
gtk_window_new
(
GTK_WINDOW_TOPLEVEL
);
gtk_window_set_default_size
(
Aken
,
400
,
180
);
// Akna suurus
gtk_window_set_title
(
Aken
,
"Kompilaatori seaded"
);
// Pealkiri
gtk_window_set_type_hint
(
Aken
,
GDK_WINDOW_TYPE_HINT_DIALOG
);
GtkBox
*
Box
=
gtk_box_new
(
GTK_ORIENTATION_VERTICAL
,
0
);
gtk_container_add
(
GTK_CONTAINER
(
Aken
),
Box
);
// Pane box aknasse
GtkBox
*
HBox1
=
gtk_box_new
(
GTK_ORIENTATION_HORIZONTAL
,
8
);
GtkBox
*
HBox2
=
gtk_box_new
(
GTK_ORIENTATION_HORIZONTAL
,
8
);
GtkBox
*
HBox3
=
gtk_box_new
(
GTK_ORIENTATION_HORIZONTAL
,
8
);
GtkBox
*
HBox4
=
gtk_box_new
(
GTK_ORIENTATION_HORIZONTAL
,
8
);
GtkLabel
*
LabelNimi
=
gtk_label_new
(
"Nimi"
);
GtkLabel
*
LabelSeaded
=
gtk_label_new
(
"Seaded"
);
GtkLabel
*
LabelAsukoht
=
gtk_label_new
(
"Asukoht"
);
GtkEntry
*
EntryNimi
=
gtk_entry_new
();
gtk_entry_set_width_chars
(
EntryNimi
,
40
);
GtkEntry
*
EntrySeaded
=
gtk_entry_new
();
gtk_entry_set_width_chars
(
EntrySeaded
,
40
);
GtkEntry
*
EntryAsukoht
=
gtk_entry_new
();
gtk_entry_set_width_chars
(
EntryAsukoht
,
40
);
GtkEntryBuffer
*
PuhverNimi
=
gtk_entry_get_buffer
(
EntryNimi
);
GtkEntryBuffer
*
PuhverSeaded
=
gtk_entry_get_buffer
(
EntrySeaded
);
GtkEntryBuffer
*
PuhverAsukoht
=
gtk_entry_get_buffer
(
EntryAsukoht
);
gtk_box_pack_start
(
HBox1
,
GTK_WIDGET
(
LabelNimi
),
FALSE
,
FALSE
,
8
);
gtk_box_pack_start
(
HBox1
,
GTK_WIDGET
(
EntryNimi
),
FALSE
,
FALSE
,
33
);
gtk_box_pack_start
(
HBox2
,
GTK_WIDGET
(
LabelSeaded
),
FALSE
,
FALSE
,
8
);
gtk_box_pack_start
(
HBox2
,
GTK_WIDGET
(
EntrySeaded
),
FALSE
,
FALSE
,
11
);
gtk_box_pack_start
(
HBox3
,
GTK_WIDGET
(
LabelAsukoht
),
FALSE
,
FALSE
,
8
);
gtk_box_pack_start
(
HBox3
,
GTK_WIDGET
(
EntryAsukoht
),
FALSE
,
FALSE
,
4
);
char
*
Nimi
=
g_key_file_get_string
(
UI
->
Seaded
,
"Kompilaator"
,
"nimi"
,
NULL
);
if
(
Nimi
)
gtk_entry_buffer_set_text
(
PuhverNimi
,
Nimi
,
-
1
);
char
*
Seaded
=
g_key_file_get_string
(
UI
->
Seaded
,
"Kompilaator"
,
"seaded"
,
NULL
);
if
(
Seaded
)
gtk_entry_buffer_set_text
(
PuhverSeaded
,
Seaded
,
-
1
);
char
*
Asukoht
=
g_key_file_get_string
(
UI
->
Seaded
,
"Kompilaator"
,
"asukoht"
,
NULL
);
if
(
Asukoht
)
gtk_entry_buffer_set_text
(
PuhverAsukoht
,
Asukoht
,
-
1
);
puhvrid
*
Puhvrid
=
malloc
(
sizeof
(
puhvrid
));
Puhvrid
->
Aken
=
Aken
;
Puhvrid
->
Seaded
=
UI
->
Seaded
;
Puhvrid
->
SeadedNimi
=
UI
->
SeadedNimi
;
Puhvrid
->
PuhverNimi
=
PuhverNimi
;
Puhvrid
->
PuhverSeaded
=
PuhverSeaded
;
Puhvrid
->
PuhverAsukoht
=
PuhverAsukoht
;
GtkButton
*
NuppSalvesta
=
gtk_button_new_with_label
(
"Salvesta"
);
GtkButton
*
NuppValju
=
gtk_button_new_with_label
(
"Välju"
);
g_signal_connect
(
NuppSalvesta
,
"clicked"
,
G_CALLBACK
(
SalvestaSeaded
),
Puhvrid
);
g_signal_connect
(
NuppValju
,
"clicked"
,
G_CALLBACK
(
SulgeSeaded
),
Puhvrid
);
gtk_box_pack_start
(
HBox4
,
GTK_WIDGET
(
NuppSalvesta
),
FALSE
,
FALSE
,
100
);
gtk_box_pack_start
(
HBox4
,
GTK_WIDGET
(
NuppValju
),
FALSE
,
FALSE
,
8
);
gtk_box_pack_start
(
Box
,
GTK_WIDGET
(
HBox1
),
FALSE
,
FALSE
,
4
);
gtk_box_pack_start
(
Box
,
GTK_WIDGET
(
HBox2
),
FALSE
,
FALSE
,
4
);
gtk_box_pack_start
(
Box
,
GTK_WIDGET
(
HBox3
),
FALSE
,
FALSE
,
4
);
gtk_box_pack_start
(
Box
,
GTK_WIDGET
(
HBox4
),
FALSE
,
FALSE
,
8
);
gtk_widget_show_all
(
Aken
);
}
compiler.h
0 → 100644
View file @
3879d569
#ifndef COMPILER_H
#define COMPILER_H
#include "ceditor.h"
typedef
struct
{
GtkWindow
*
Aken
;
GKeyFile
*
Seaded
;
char
*
SeadedNimi
;
GtkEntryBuffer
*
PuhverNimi
;
GtkEntryBuffer
*
PuhverSeaded
;
GtkEntryBuffer
*
PuhverAsukoht
;
}
puhvrid
;
void
KompilaatoriSeaded
(
GtkWidget
*
Nupp
,
gpointer
Data
);
#endif // COMPILER_H
tab.c
View file @
3879d569
...
@@ -97,19 +97,15 @@ void UuendaTabiPealkirja(tab *Tab, char *Nimi)
...
@@ -97,19 +97,15 @@ void UuendaTabiPealkirja(tab *Tab, char *Nimi)
void
UuendaTabMuudetud
(
tab
*
Tab
)
void
UuendaTabMuudetud
(
tab
*
Tab
)
{
{
int
Muudetud
=
gtk_text_buffer_get_modified
(
Tab
->
Puhver
);
if
(
gtk_text_buffer_get_modified
(
Tab
->
Puhver
))
if
(
Tab
->
OnMuudetud
==
0
)
{
{
char
*
Tekst
=
g_strdup_printf
(
"%s *"
,
gtk_label_get_text
(
Tab
->
Pealkiri
));
char
*
Tekst
=
g_strdup_printf
(
"%s *"
,
gtk_label_get_text
(
Tab
->
Pealkiri
));
gtk_label_set_label
(
GTK_LABEL
(
Tab
->
Pealkiri
),
Tekst
);
gtk_label_set_label
(
GTK_LABEL
(
Tab
->
Pealkiri
),
Tekst
);
g_free
(
Tekst
);
g_free
(
Tekst
);
Tab
->
OnMuudetud
=
1
;
}
}
else
if
(
!
Muudetud
)
else
{
{
gtk_label_set_label
(
GTK_LABEL
(
Tab
->
Pealkiri
),
Tab
->
PealkiriTekst
);
gtk_label_set_label
(
GTK_LABEL
(
Tab
->
Pealkiri
),
Tab
->
PealkiriTekst
);
Tab
->
OnMuudetud
=
0
;
}
}
}
}
...
...
ui.c
View file @
3879d569
...
@@ -78,8 +78,9 @@ ui *LooUI()
...
@@ -78,8 +78,9 @@ ui *LooUI()
// Menu bar
// Menu bar
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
*
AboutMenuNupp
=
gtk_menu_item_new_with_label
(
"About"
);
// About
GtkWidget
*
KompMenuNupp
=
gtk_menu_item_new_with_label
(
"Kompileeri"
);
// Kompileeri
GtkWidget
*
FailMenu
=
gtk_menu_new
();
// Fail menüü
// Fail menüü
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
GtkWidget
*
FailMenuAva
=
gtk_menu_item_new_with_label
(
"Ava"
);
// Fail->Ava
GtkWidget
*
FailMenuAva
=
gtk_menu_item_new_with_label
(
"Ava"
);
// Fail->Ava
UI
->
FailMenuAva
=
FailMenuAva
;
UI
->
FailMenuAva
=
FailMenuAva
;
...
@@ -90,11 +91,18 @@ ui *LooUI()
...
@@ -90,11 +91,18 @@ ui *LooUI()
GtkWidget
*
FailMenuSulgeV
=
gtk_menu_item_new_with_label
(
"Sulge vahekaart"
);
// Fail->Sulge vahekaart
GtkWidget
*
FailMenuSulgeV
=
gtk_menu_item_new_with_label
(
"Sulge vahekaart"
);
// Fail->Sulge vahekaart
UI
->
FailMenuSulgeV
=
FailMenuSulgeV
;
UI
->
FailMenuSulgeV
=
FailMenuSulgeV
;
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üü
GtkWidget
*
KompMenu
=
gtk_menu_new
();
GtkWidget
*
KompMenuSeaded
=
gtk_menu_item_new_with_label
(
"Seaded"
);
// Kompileeri->Seaded
GtkWidget
*
KompMenuKompileeri
=
gtk_menu_item_new_with_label
(
"Kompileeri"
);
// Kompileeri->Kompileeri
GtkWidget
*
KompMenuKaivita
=
gtk_menu_item_new_with_label
(
"Käivita"
);
// Kompileeri->Käivita
// 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
),
AboutMenuNupp
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
UI
->
MenuBar
),
KompMenuNupp
);
// 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
);
// 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
);
...
@@ -105,6 +113,11 @@ ui *LooUI()
...
@@ -105,6 +113,11 @@ ui *LooUI()
LisaMenuItem
(
UI
,
FailMenu
,
FailMenuSulgeV
,
SulgeVahekaart
,
GDK_KEY_W
,
GDK_CONTROL_MASK
);
// Fail->Sulge vahekaart
LisaMenuItem
(
UI
,
FailMenu
,
FailMenuSulgeV
,
SulgeVahekaart
,
GDK_KEY_W
,
GDK_CONTROL_MASK
);
// Fail->Sulge vahekaart
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üü
LisaMenuItem
(
UI
,
KompMenu
,
KompMenuSeaded
,
KompilaatoriSeaded
,
0
,
0
);
// Kompileeri->Seaded
MenuSeparator
(
KompMenu
);
LisaMenuItem
(
UI
,
KompMenu
,
KompMenuKompileeri
,
NULL
,
GDK_KEY_C
,
GDK_CONTROL_MASK
|
GDK_SHIFT_MASK
);
// Kompileeri->Kompileeri
LisaMenuItem
(
UI
,
KompMenu
,
KompMenuKaivita
,
NULL
,
GDK_KEY_R
,
GDK_CONTROL_MASK
|
GDK_SHIFT_MASK
);
// Kompileeri->Käivita
//ToolBar
//ToolBar
UI
->
ToolBar
=
gtk_toolbar_new
();
UI
->
ToolBar
=
gtk_toolbar_new
();
...
@@ -124,5 +137,28 @@ ui *LooUI()
...
@@ -124,5 +137,28 @@ 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 @
3879d569
...
@@ -4,12 +4,9 @@
...
@@ -4,12 +4,9 @@
#include "ceditor.h"
#include "ceditor.h"
#include "tab.h"
#include "tab.h"
#include "menubar.h"
#include "menubar.h"
#include "compiler.h"
#ifdef SOURCEVIEW
#define PEALKIRI "CEditor"
#define PEALKIRI "CEditor SourceView"
#else
#define PEALKIRI "CEditor TextView"
#endif
#define MenuSeparator(M) gtk_menu_shell_append(GTK_MENU_SHELL(M), gtk_separator_menu_item_new())
#define MenuSeparator(M) gtk_menu_shell_append(GTK_MENU_SHELL(M), gtk_separator_menu_item_new())
...
...
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