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
43e3d3dd
authored
Mar 31, 2022
by
Herman Ounas
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'Karl' into Herman
parents
607fda03
3879d569
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
228 additions
and
40 deletions
ceditor.c
ceditor.h
compiler.c
compiler.h
menubar.c
statusbar.c
tab.c
textview.c
textview.h
ui.c
ui.h
ceditor.c
View file @
43e3d3dd
#include "ceditor.h"
#include "ui.h"
/* TODO
Klahvikombinatsioonid
*/
int
main
(
int
argc
,
char
**
argv
)
{
gtk_init
(
&
argc
,
&
argv
);
...
...
ceditor.h
View file @
43e3d3dd
...
...
@@ -4,9 +4,7 @@
#include <gtk/gtk.h>
#ifdef SOURCEVIEW
#include <gtksourceview/gtksource.h>
#endif
typedef
struct
{
...
...
@@ -14,11 +12,15 @@ typedef struct
char
*
FailiNimi
;
// Viit faili nimele, 0 kui nime veel pole
GtkWidget
*
Pealkiri
;
// Vahekaardi pealkiri
char
*
PealkiriTekst
;
// Originaalne pealkirja tekst
GtkWidget
*
Box
;
// Vahekaardi box
GtkWidget
*
TextView
;
// Vahekaardi tekstiaken
GtkTextView
*
Puhver
;
// Vahekaardi tekstipuhver
GtkWidget
*
ScrollWindow
;
// Tekstiakna scroll
GtkWidget
*
StatusBar
;
// Status bar
GtkSourceLanguageManager
*
LangManager
;
GtkSourceLanguage
*
Language
;
}
tab
;
typedef
struct
...
...
@@ -28,6 +30,7 @@ typedef struct
GtkWidget
*
MenuBar
;
// Ülaosa menüü
GtkWidget
*
Notebook
;
// Notebook vahekaartidega
GtkWidget
*
ToolBar
;
//Tool bar
GtkWidget
*
AccelGroup
;
// Accel group nuppude jaoks
// Viited nuppudele nende sisse/välja lülitamiseks
GtkWidget
*
FailMenuAva
;
...
...
@@ -42,6 +45,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 @
43e3d3dd
#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 @
43e3d3dd
#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
menubar.c
View file @
43e3d3dd
...
...
@@ -44,6 +44,7 @@ void Ava(GtkWidget *Nupp, gpointer Data)
gtk_text_buffer_set_modified
(
Tab
->
Puhver
,
FALSE
);
// Tekst on muutmata
Tab
->
FailiNimi
=
Nimi
;
UuendaTabiPealkirja
(
Tab
,
Nimi
);
UuendaTabMuudetud
(
Tab
);
}
else
{
...
...
@@ -72,6 +73,7 @@ int SalvestaFail(ui *UI, tab *Tab)
GtkWidget
*
Dialog
=
0
;
if
(
Tab
->
FailiNimi
)
// Fail on juba olemas
{
if
(
gtk_text_buffer_get_modified
(
Puhver
)
==
0
)
return
;
// Ära salvesta, kui midagi pole muudetud
Nimi
=
Tab
->
FailiNimi
;
}
else
// Salvestame uue faili
...
...
@@ -107,7 +109,9 @@ int SalvestaFail(ui *UI, tab *Tab)
Tab
->
FailiNimi
=
Nimi
;
UuendaTabiPealkirja
(
Tab
,
Nimi
);
}
else
g_free
(
Nimi
);
UuendaTabMuudetud
(
Tab
);
g_free
(
Sisu
);
if
(
Dialog
)
gtk_widget_destroy
(
Dialog
);
...
...
@@ -170,7 +174,8 @@ void SalvestaNimega(GtkWidget *Nupp, gpointer Data)
Tab
->
FailiNimi
=
Nimi
;
UuendaTabiPealkirja
(
Tab
,
Nimi
);
}
else
g_free
(
Nimi
);
UuendaTabMuudetud
(
Tab
);
}
else
{
...
...
statusbar.c
View file @
43e3d3dd
tab.c
View file @
43e3d3dd
...
...
@@ -20,12 +20,9 @@ void LisaTab(ui *UI)
Tab
->
Aken
=
UI
->
Aken
;
// Tekstiaken
#ifdef SOURCEVIEW
Tab
->
TextView
=
gtk_source_view_new
();
// Loo tekstiaken
#else
Tab
->
TextView
=
gtk_text_view_new
();
// Loo tekstiaken
#endif
Tab
->
Puhver
=
gtk_text_view_get_buffer
(
GTK_TEXT_VIEW
(
Tab
->
TextView
));
// Tekstiakna teksti puhver
Tab
->
OnMuudetud
=
0
;
// Scroll window
Tab
->
ScrollWindow
=
gtk_scrolled_window_new
(
NULL
,
NULL
);
// Loo scroll aken
...
...
@@ -34,8 +31,10 @@ void LisaTab(ui *UI)
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, uuendab rida/veergu
g_signal_connect
(
Tab
->
Puhver
,
"changed"
,
G_CALLBACK
(
UuendaRidaVeerg
),
Tab
->
StatusBar
);
// 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
);
...
...
@@ -46,6 +45,11 @@ void LisaTab(ui *UI)
// 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
);
...
...
@@ -84,13 +88,27 @@ void KustutaTab(ui *UI, int Indeks)
// Uuenda vahekaardi pealkirja (faili nime)
void
UuendaTabiPealkirja
(
tab
*
Tab
,
char
*
Nimi
)
{
char
*
Tekst
=
g_path_get_basename
(
Nimi
);
// Eralda faili nimi
gtk_label_set_label
(
GTK_LABEL
(
Tab
->
Pealkiri
),
Tekst
);
g_free
(
Tekst
);
Tab
->
Pealkiri
Tekst
=
g_path_get_basename
(
Nimi
);
// Eralda faili nimi
gtk_label_set_label
(
GTK_LABEL
(
Tab
->
Pealkiri
),
Tab
->
Pealkiri
Tekst
);
// Terve faili nimi tooltip'is
gtk_widget_set_tooltip_text
(
Tab
->
Pealkiri
,
Nimi
);
}
void
UuendaTabMuudetud
(
tab
*
Tab
)
{
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
);
}
else
{
gtk_label_set_label
(
GTK_LABEL
(
Tab
->
Pealkiri
),
Tab
->
PealkiriTekst
);
}
}
// Kutsutakse igal vahekaardi muutmisel
void
TabMuudetud
(
GtkWidget
*
Notebook
,
GtkWidget
*
Tab
,
guint
Indeks
,
gpointer
Data
)
{
...
...
textview.c
View file @
43e3d3dd
#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
void
TekstMarkSet
(
GtkTextBuffer
*
Puhver
,
const
GtkTextIter
*
new_location
,
GtkTextMark
*
Mark
,
gpointer
Data
)
{
...
...
textview.h
View file @
43e3d3dd
...
...
@@ -3,6 +3,8 @@
#include "ceditor.h"
void
TekstMuudetud
(
GtkTextBuffer
*
Puhver
,
tab
*
Tab
);
void
TekstModified
(
GtkTextBuffer
*
Puhver
,
tab
*
Tab
);
void
TekstMarkSet
(
GtkTextBuffer
*
Puhver
,
const
GtkTextIter
*
new_location
,
GtkTextMark
*
Mark
,
gpointer
Data
);
#endif // TEXTVIEW_H
ui.c
View file @
43e3d3dd
...
...
@@ -38,6 +38,14 @@ void Valju(GtkWidget *Nupp, gpointer Data)
if
(
Sulge
(
UI
))
gtk_main_quit
();;
}
// Lisa menüüsse menu item
void
LisaMenuItem
(
ui
*
UI
,
GtkWidget
*
Menu
,
GtkWidget
*
MenuItem
,
void
*
Callback
,
guint
Nupp
,
GdkModifierType
NuppMask
)
{
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
Menu
),
MenuItem
);
g_signal_connect
(
MenuItem
,
"activate"
,
G_CALLBACK
(
Callback
),
UI
);
if
(
Nupp
)
gtk_widget_add_accelerator
(
MenuItem
,
"activate"
,
UI
->
AccelGroup
,
Nupp
,
NuppMask
,
GTK_ACCEL_VISIBLE
);
}
// Loo programmi kasutajaliides
ui
*
LooUI
()
{
...
...
@@ -63,11 +71,16 @@ ui *LooUI()
LisaTab
(
UI
);
UI
->
PraeguneTab
=
0
;
// Accel group
UI
->
AccelGroup
=
gtk_accel_group_new
();
gtk_window_add_accel_group
(
UI
->
Aken
,
UI
->
AccelGroup
);
// 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
;
...
...
@@ -78,27 +91,33 @@ 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üü
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
FailMenu
),
FailMenuUus
);
// Fail->Uus vahekaart
g_signal_connect
(
FailMenuUus
,
"activate"
,
G_CALLBACK
(
Uus
),
UI
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
FailMenu
),
gtk_separator_menu_item_new
());
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
FailMenu
),
FailMenuAva
);
// Fail->Ava
g_signal_connect
(
FailMenuAva
,
"activate"
,
G_CALLBACK
(
Ava
),
UI
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
FailMenu
),
FailMenuSalvesta
);
// Fail->Salvesta
g_signal_connect
(
FailMenuSalvesta
,
"activate"
,
G_CALLBACK
(
Salvesta
),
UI
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
FailMenu
),
FailMenuSalvestaN
);
// Fail->Salvesta nimega
g_signal_connect
(
FailMenuSalvestaN
,
"activate"
,
G_CALLBACK
(
SalvestaNimega
),
UI
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
FailMenu
),
gtk_separator_menu_item_new
());
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
FailMenu
),
FailMenuSulgeV
);
// Fail->Sulge vahekaart
g_signal_connect
(
FailMenuSulgeV
,
"activate"
,
G_CALLBACK
(
SulgeVahekaart
),
UI
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
FailMenu
),
gtk_separator_menu_item_new
());
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
FailMenu
),
FailMenuValju
);
// Fail->Välju
g_signal_connect
(
FailMenuValju
,
"activate"
,
G_CALLBACK
(
Valju
),
UI
);
LisaMenuItem
(
UI
,
FailMenu
,
FailMenuUus
,
Uus
,
GDK_KEY_N
,
GDK_CONTROL_MASK
);
// Fail->Uus vahekaart
MenuSeparator
(
FailMenu
);
LisaMenuItem
(
UI
,
FailMenu
,
FailMenuAva
,
Ava
,
GDK_KEY_O
,
GDK_CONTROL_MASK
);
// Fail->Ava
LisaMenuItem
(
UI
,
FailMenu
,
FailMenuSalvesta
,
Salvesta
,
GDK_KEY_S
,
GDK_CONTROL_MASK
);
// Fail->Salvesta
LisaMenuItem
(
UI
,
FailMenu
,
FailMenuSalvestaN
,
SalvestaNimega
,
GDK_KEY_S
,
GDK_CONTROL_MASK
|
GDK_MOD1_MASK
);
// Fail->Salvesta nimega
MenuSeparator
(
FailMenu
);
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
();
...
...
@@ -118,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 @
43e3d3dd
...
...
@@ -4,12 +4,11 @@
#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())
ui
*
LooUI
();
...
...
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