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
{
GtkWidget
*
Aken
;
// Programmi aken
char
*
FailiNimi
;
// Viit faili nimele, 0 kui nime veel pole
int
OnMuudetud
;
// Kas teksti on muudetud
GtkWidget
*
Pealkiri
;
// Vahekaardi pealkiri
char
*
PealkiriTekst
;
// Originaalne pealkirja tekst
...
...
@@ -44,6 +43,9 @@ typedef struct
//toolbari nupud
GtkToolItem
*
Undo
;
//undo nupp
GtkToolItem
*
Redo
;
//redo nupp
GKeyFile
*
Seaded
;
// Seadete fail
char
*
SeadedNimi
;
// Seadete faili nimi
}
ui
;
#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)
void
UuendaTabMuudetud
(
tab
*
Tab
)
{
int
Muudetud
=
gtk_text_buffer_get_modified
(
Tab
->
Puhver
);
if
(
Tab
->
OnMuudetud
==
0
)
if
(
gtk_text_buffer_get_modified
(
Tab
->
Puhver
))
{
char
*
Tekst
=
g_strdup_printf
(
"%s *"
,
gtk_label_get_text
(
Tab
->
Pealkiri
));
gtk_label_set_label
(
GTK_LABEL
(
Tab
->
Pealkiri
),
Tekst
);
g_free
(
Tekst
);
Tab
->
OnMuudetud
=
1
;
}
else
if
(
!
Muudetud
)
else
{
gtk_label_set_label
(
GTK_LABEL
(
Tab
->
Pealkiri
),
Tab
->
PealkiriTekst
);
Tab
->
OnMuudetud
=
0
;
}
}
...
...
ui.c
View file @
3879d569
...
...
@@ -78,8 +78,9 @@ ui *LooUI()
// Menu bar
UI
->
MenuBar
=
gtk_menu_bar_new
();
// Loo menu bar
GtkWidget
*
FailMenuNupp
=
gtk_menu_item_new_with_label
(
"Fail"
);
// Fail
GtkWidget
*
AboutMenuNupp
=
gtk_menu_item_new_with_label
(
"About"
);
// About
GtkWidget
*
FailMenu
=
gtk_menu_new
();
// Fail menüü
GtkWidget
*
KompMenuNupp
=
gtk_menu_item_new_with_label
(
"Kompileeri"
);
// Kompileeri
// Fail menüü
GtkWidget
*
FailMenu
=
gtk_menu_new
();
GtkWidget
*
FailMenuUus
=
gtk_menu_item_new_with_label
(
"Uus vahekaart"
);
// Fail->Uus vahekaart
GtkWidget
*
FailMenuAva
=
gtk_menu_item_new_with_label
(
"Ava"
);
// Fail->Ava
UI
->
FailMenuAva
=
FailMenuAva
;
...
...
@@ -90,11 +91,18 @@ ui *LooUI()
GtkWidget
*
FailMenuSulgeV
=
gtk_menu_item_new_with_label
(
"Sulge vahekaart"
);
// Fail->Sulge vahekaart
UI
->
FailMenuSulgeV
=
FailMenuSulgeV
;
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
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
gtk_menu_item_set_submenu
(
GTK_MENU_ITEM
(
FailMenuNupp
),
FailMenu
);
gtk_menu_item_set_submenu
(
GTK_MENU_ITEM
(
KompMenuNupp
),
KompMenu
);
// Fail menüü
LisaMenuItem
(
UI
,
FailMenu
,
FailMenuUus
,
Uus
,
GDK_KEY_N
,
GDK_CONTROL_MASK
);
// Fail->Uus vahekaart
MenuSeparator
(
FailMenu
);
...
...
@@ -105,6 +113,11 @@ ui *LooUI()
LisaMenuItem
(
UI
,
FailMenu
,
FailMenuSulgeV
,
SulgeVahekaart
,
GDK_KEY_W
,
GDK_CONTROL_MASK
);
// Fail->Sulge vahekaart
MenuSeparator
(
FailMenu
);
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
UI
->
ToolBar
=
gtk_toolbar_new
();
...
...
@@ -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
->
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
;
}
ui.h
View file @
3879d569
...
...
@@ -4,12 +4,9 @@
#include "ceditor.h"
#include "tab.h"
#include "menubar.h"
#include "compiler.h"
#ifdef SOURCEVIEW
#define PEALKIRI "CEditor SourceView"
#else
#define PEALKIRI "CEditor TextView"
#endif
#define PEALKIRI "CEditor"
#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