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
747d86ac
authored
Apr 08, 2022
by
karudu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Kompilaatori väljakutsumine toimib
parent
3879d569
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
237 additions
and
43 deletions
compiler.c
compiler.h
statusbar.c
statusbar.h
tab.c
ui.c
compiler.c
View file @
747d86ac
...
...
@@ -5,9 +5,10 @@ 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_set_string
(
Puhvrid
->
Seaded
,
"Kompilaator"
,
"komp_asukoht"
,
gtk_entry_buffer_get_text
(
Puhvrid
->
PuhverKAsukoht
));
g_key_file_set_string
(
Puhvrid
->
Seaded
,
"Kompilaator"
,
"komp_seaded"
,
gtk_entry_buffer_get_text
(
Puhvrid
->
PuhverKSeaded
));
g_key_file_set_string
(
Puhvrid
->
Seaded
,
"Kompilaator"
,
"prog_asukoht"
,
gtk_entry_buffer_get_text
(
Puhvrid
->
PuhverPAsukoht
));
g_key_file_set_string
(
Puhvrid
->
Seaded
,
"Kompilaator"
,
"prog_seaded"
,
gtk_entry_buffer_get_text
(
Puhvrid
->
PuhverPSeaded
));
g_key_file_save_to_file
(
Puhvrid
->
Seaded
,
Puhvrid
->
SeadedNimi
,
0
);
...
...
@@ -40,51 +41,229 @@ void KompilaatoriSeaded(GtkWidget *Nupp, gpointer Data)
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
);
GtkBox
*
HBoxNupud
=
gtk_box_new
(
GTK_ORIENTATION_HORIZONTAL
,
8
);
GtkLabel
*
LabelKAsukoht
=
gtk_label_new
(
"Kompilaatori asukoht"
);
GtkLabel
*
LabelKSeaded
=
gtk_label_new
(
"Kompilaatori seaded"
);
GtkLabel
*
LabelPAsukoht
=
gtk_label_new
(
"Programmi asukoht"
);
GtkLabel
*
LabelPSeaded
=
gtk_label_new
(
"Programmi seaded"
);
GtkEntry
*
EntryKAsukoht
=
gtk_entry_new
();
gtk_entry_set_width_chars
(
EntryKAsukoht
,
40
);
GtkEntry
*
EntryKSeaded
=
gtk_entry_new
();
gtk_entry_set_width_chars
(
EntryKSeaded
,
40
);
GtkEntry
*
EntryPAsukoht
=
gtk_entry_new
();
gtk_entry_set_width_chars
(
EntryPAsukoht
,
40
);
GtkEntry
*
EntryPSeaded
=
gtk_entry_new
();
gtk_entry_set_width_chars
(
EntryPSeaded
,
40
);
GtkEntryBuffer
*
PuhverKAsukoht
=
gtk_entry_get_buffer
(
EntryKAsukoht
);
GtkEntryBuffer
*
PuhverKSeaded
=
gtk_entry_get_buffer
(
EntryKSeaded
);
GtkEntryBuffer
*
PuhverPAsukoht
=
gtk_entry_get_buffer
(
EntryPAsukoht
);
GtkEntryBuffer
*
PuhverPSeaded
=
gtk_entry_get_buffer
(
EntryPSeaded
);
gtk_box_pack_start
(
HBox1
,
GTK_WIDGET
(
LabelKAsukoht
),
FALSE
,
FALSE
,
8
);
gtk_box_pack_start
(
HBox1
,
GTK_WIDGET
(
EntryKAsukoht
),
FALSE
,
FALSE
,
0
);
gtk_box_pack_start
(
HBox2
,
GTK_WIDGET
(
LabelKSeaded
),
FALSE
,
FALSE
,
8
);
gtk_box_pack_start
(
HBox2
,
GTK_WIDGET
(
EntryKSeaded
),
FALSE
,
FALSE
,
6
);
gtk_box_pack_start
(
HBox3
,
GTK_WIDGET
(
LabelPAsukoht
),
FALSE
,
FALSE
,
8
);
gtk_box_pack_start
(
HBox3
,
GTK_WIDGET
(
EntryPAsukoht
),
FALSE
,
FALSE
,
12
);
gtk_box_pack_start
(
HBox4
,
GTK_WIDGET
(
LabelPSeaded
),
FALSE
,
FALSE
,
8
);
gtk_box_pack_start
(
HBox4
,
GTK_WIDGET
(
EntryPSeaded
),
FALSE
,
FALSE
,
18
);
char
*
KAsukoht
=
g_key_file_get_string
(
UI
->
Seaded
,
"Kompilaator"
,
"komp_asukoht"
,
NULL
);
if
(
KAsukoht
)
gtk_entry_buffer_set_text
(
PuhverKAsukoht
,
KAsukoht
,
-
1
);
char
*
KSeaded
=
g_key_file_get_string
(
UI
->
Seaded
,
"Kompilaator"
,
"komp_seaded"
,
NULL
);
if
(
KSeaded
)
gtk_entry_buffer_set_text
(
PuhverKSeaded
,
KSeaded
,
-
1
);
char
*
PAsukoht
=
g_key_file_get_string
(
UI
->
Seaded
,
"Kompilaator"
,
"prog_asukoht"
,
NULL
);
if
(
PAsukoht
)
gtk_entry_buffer_set_text
(
PuhverPAsukoht
,
PAsukoht
,
-
1
);
char
*
PSeaded
=
g_key_file_get_string
(
UI
->
Seaded
,
"Kompilaator"
,
"prog_seaded"
,
NULL
);
if
(
PSeaded
)
gtk_entry_buffer_set_text
(
PuhverPSeaded
,
PSeaded
,
-
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
;
Puhvrid
->
PuhverKAsukoht
=
PuhverKAsukoht
;
Puhvrid
->
PuhverKSeaded
=
PuhverKSeaded
;
Puhvrid
->
PuhverPAsukoht
=
PuhverPAsukoht
;
Puhvrid
->
PuhverPSeaded
=
PuhverPSeaded
;
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
(
HBox
4
,
GTK_WIDGET
(
NuppSalvesta
),
FALSE
,
FALSE
,
10
0
);
gtk_box_pack_start
(
HBox
4
,
GTK_WIDGET
(
NuppValju
),
FALSE
,
FALSE
,
8
);
gtk_box_pack_start
(
HBox
Nupud
,
GTK_WIDGET
(
NuppSalvesta
),
FALSE
,
FALSE
,
14
0
);
gtk_box_pack_start
(
HBox
Nupud
,
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_box_pack_start
(
Box
,
GTK_WIDGET
(
HBox4
),
FALSE
,
FALSE
,
4
);
gtk_box_pack_start
(
Box
,
GTK_WIDGET
(
HBoxNupud
),
FALSE
,
FALSE
,
8
);
gtk_widget_show_all
(
Aken
);
}
// Loo programmi käsureast argv massiiv
char
**
LooArgv
(
char
*
Tekst
)
{
int
Argument
=
0
;
int
P
=
0
;
int
ArgP
=
0
;
char
**
Argv
=
malloc
(
sizeof
(
char
*
)
*
16
);
Argv
[
0
]
=
malloc
(
512
);
int
Quotes
=
0
;
for
(;;)
{
char
C
=
Tekst
[
P
++
];
if
(
!
Quotes
)
{
switch
(
C
)
{
case
' '
:
{
Argv
[
Argument
][
ArgP
]
=
0
;
Argument
++
;
Argv
[
Argument
]
=
malloc
(
512
);
ArgP
=
0
;
}
break
;
case
0
:
{
Argv
[
Argument
][
ArgP
]
=
0
;
Argv
[
Argument
+
1
]
=
malloc
(
1
);
Argv
[
Argument
+
1
]
=
NULL
;
return
Argv
;
}
break
;
case
'"'
:
Quotes
=
1
;
break
;
default:
Argv
[
Argument
][
ArgP
++
]
=
C
;
break
;
}
}
else
{
switch
(
C
)
{
case
'"'
:
Quotes
=
0
;
break
;
default:
Argv
[
Argument
][
ArgP
++
]
=
C
;
break
;
}
}
}
}
// Käivita kompilaator vastavalt seadistustele
void
Kompileeri
(
GtkWidget
*
Nupp
,
gpointer
Data
)
{
ui
*
UI
=
(
ui
*
)
Data
;
char
*
Asukoht
=
g_key_file_get_string
(
UI
->
Seaded
,
"Kompilaator"
,
"komp_asukoht"
,
NULL
);
char
*
Seaded
=
g_key_file_get_string
(
UI
->
Seaded
,
"Kompilaator"
,
"komp_seaded"
,
NULL
);
char
*
PAsukoht
=
g_key_file_get_string
(
UI
->
Seaded
,
"Kompilaator"
,
"prog_asukoht"
,
NULL
);
if
(
Asukoht
&&
Seaded
&&
PAsukoht
)
// Kontrolli, et seaded on olemas
{
gchar
*
PKaust
=
g_path_get_dirname
(
PAsukoht
);
// Eemalda programmi nimi faili asukohast, jäta kaust järele
// Tee asukohast ja seadetest käsurea string, asukoht läheb jutumärkide vahele, et tühikud töötaks
char
*
Kask
;
if
(
Seaded
)
Kask
=
g_strdup_printf
(
"
\"
%s
\"
%s"
,
Asukoht
,
Seaded
);
else
Kask
=
g_strdup_printf
(
"
\"
%s
\"
"
,
Asukoht
);
char
**
Argv
=
LooArgv
(
Kask
);
// Teisalda käsurida argumentide massiiviks
GError
*
Viga
=
NULL
;
gint
WaitStatus
;
// Käivita kompilaator
int
Status
=
g_spawn_sync
(
PKaust
,
Argv
,
NULL
,
G_SPAWN_SEARCH_PATH
|
G_SPAWN_CHILD_INHERITS_STDIN
,
NULL
,
NULL
,
NULL
,
NULL
,
&
WaitStatus
,
&
Viga
);
// Vaata, kuidas läks
if
(
Status
==
TRUE
)
// Kutsuti edukalt välja
{
// Kui kompileerimine õnnestus (tagastas 0), siis teata sellest status bar'il
if
(
g_spawn_check_wait_status
(
WaitStatus
,
&
Viga
))
{
StatusBarMsg
(
UI
,
"Kompileerimine OK"
);
}
else
g_error_free
(
Viga
);
}
else
// Ei suutnud kompilaatorit käivitada, veateade
{
GtkWidget
*
Dialog
=
gtk_message_dialog_new
(
UI
->
Aken
,
GTK_DIALOG_DESTROY_WITH_PARENT
,
GTK_MESSAGE_ERROR
,
GTK_BUTTONS_CLOSE
,
"Viga kompilaatori väljakutsumisel:
\n
%s"
,
Viga
->
message
);
gtk_dialog_run
(
GTK_DIALOG
(
Dialog
));
gtk_widget_destroy
(
Dialog
);
g_error_free
(
Viga
);
}
g_free
(
Asukoht
);
g_free
(
Seaded
);
g_free
(
PAsukoht
);
g_free
(
PKaust
);
g_free
(
Kask
);
g_free
(
Argv
);
}
else
// Pole veel seadistatud
{
GtkWidget
*
Dialog
=
gtk_message_dialog_new
(
UI
->
Aken
,
GTK_DIALOG_DESTROY_WITH_PARENT
,
GTK_MESSAGE_ERROR
,
GTK_BUTTONS_CLOSE
,
"Kompilaatori asukoht või seaded pole seadistatud,
\n
seadista need ja proovi uuesti"
);
gtk_dialog_run
(
GTK_DIALOG
(
Dialog
));
gtk_widget_destroy
(
Dialog
);
}
}
// Käivita seadetes antud programm
void
KaivitaProgramm
(
GtkWidget
*
Nupp
,
gpointer
Data
)
{
ui
*
UI
=
(
ui
*
)
Data
;
char
*
Asukoht
=
g_key_file_get_string
(
UI
->
Seaded
,
"Kompilaator"
,
"prog_asukoht"
,
NULL
);
char
*
Seaded
=
g_key_file_get_string
(
UI
->
Seaded
,
"Kompilaator"
,
"prog_seaded"
,
NULL
);
if
(
Asukoht
&&
Seaded
)
// Kontrolli, et seaded on olemas
{
gchar
*
Kaust
=
g_path_get_dirname
(
Asukoht
);
// Eemalda programmi nimi faili asukohast, jäta kaust järele
// Tee asukohast ja seadetest käsurea string, asukoht läheb jutumärkide vahele, et tühikud töötaks
char
*
Kask
;
if
(
Seaded
)
Kask
=
g_strdup_printf
(
"
\"
%s
\"
%s"
,
Asukoht
,
Seaded
);
else
Kask
=
g_strdup_printf
(
"
\"
%s
\"
"
,
Asukoht
);
char
**
Argv
=
LooArgv
(
Kask
);
// Teisalda käsurida argumentide massiiviks
GError
*
Viga
=
NULL
;
gint
WaitStatus
;
// Käivita programm
int
Status
=
g_spawn_sync
(
Kaust
,
Argv
,
NULL
,
G_SPAWN_SEARCH_PATH
|
G_SPAWN_CHILD_INHERITS_STDIN
,
NULL
,
NULL
,
NULL
,
NULL
,
&
WaitStatus
,
&
Viga
);
// Vaata, kuidas läks
if
(
Status
==
TRUE
)
// Kutsuti edukalt välja
{
// Loe ja näita programmi tagastatud koodi
gint
Kood
=
0
;
if
(
g_spawn_check_wait_status
(
WaitStatus
,
&
Viga
)
==
FALSE
)
{
Kood
=
Viga
->
code
;
g_error_free
(
Viga
);
}
char
*
Msg
=
g_strdup_printf
(
"Programm tagastas 0x%x"
,
Kood
);
StatusBarMsg
(
UI
,
Msg
);
gtk_window_present
(
UI
->
Aken
);
// Näita redaktori akent
g_free
(
Msg
);
}
else
// Ei suutnud programmi käivitada, veateade
{
GtkWidget
*
Dialog
=
gtk_message_dialog_new
(
UI
->
Aken
,
GTK_DIALOG_DESTROY_WITH_PARENT
,
GTK_MESSAGE_ERROR
,
GTK_BUTTONS_CLOSE
,
"Viga programmi väljakutsumisel:
\n
%s"
,
Viga
->
message
);
gtk_dialog_run
(
GTK_DIALOG
(
Dialog
));
gtk_widget_destroy
(
Dialog
);
g_error_free
(
Viga
);
}
g_free
(
Asukoht
);
g_free
(
Seaded
);
g_free
(
Kaust
);
g_free
(
Kask
);
g_free
(
Argv
);
}
else
// Pole veel seadistatud
{
GtkWidget
*
Dialog
=
gtk_message_dialog_new
(
UI
->
Aken
,
GTK_DIALOG_DESTROY_WITH_PARENT
,
GTK_MESSAGE_ERROR
,
GTK_BUTTONS_CLOSE
,
"Programmi asukoht või seaded pole seadistatud,
\n
seadista need ja proovi uuesti"
);
gtk_dialog_run
(
GTK_DIALOG
(
Dialog
));
gtk_widget_destroy
(
Dialog
);
}
}
compiler.h
View file @
747d86ac
...
...
@@ -8,11 +8,14 @@ typedef struct
GtkWindow
*
Aken
;
GKeyFile
*
Seaded
;
char
*
SeadedNimi
;
GtkEntryBuffer
*
PuhverNimi
;
GtkEntryBuffer
*
PuhverSeaded
;
GtkEntryBuffer
*
PuhverAsukoht
;
GtkEntryBuffer
*
PuhverKAsukoht
;
GtkEntryBuffer
*
PuhverKSeaded
;
GtkEntryBuffer
*
PuhverPAsukoht
;
GtkEntryBuffer
*
PuhverPSeaded
;
}
puhvrid
;
void
KompilaatoriSeaded
(
GtkWidget
*
Nupp
,
gpointer
Data
);
void
Kompileeri
(
GtkWidget
*
Nupp
,
gpointer
Data
);
void
KaivitaProgramm
(
GtkWidget
*
Nupp
,
gpointer
Data
);
#endif // COMPILER_H
statusbar.c
View file @
747d86ac
...
...
@@ -10,9 +10,17 @@ void UuendaRidaVeerg(GtkTextBuffer *Puhver, GtkStatusbar *StatusBar)
gint
Rida
=
gtk_text_iter_get_line
(
&
Iter
);
gint
Veerg
=
gtk_text_iter_get_line_offset
(
&
Iter
);
gtk_statusbar_pop
(
StatusBar
,
0
);
// Võta eelmine tekst ära
gtk_statusbar_pop
(
StatusBar
,
STATUSBAR_RIDAVEERG
);
// Võta eelmine tekst ära
gchar
*
Tekst
=
g_strdup_printf
(
"%d:%d"
,
Rida
+
1
,
Veerg
+
1
);
// Loo string rea ja veeruga
gtk_statusbar_push
(
StatusBar
,
0
,
Tekst
);
// Näita teksti
gtk_statusbar_push
(
StatusBar
,
STATUSBAR_RIDAVEERG
,
Tekst
);
// Näita teksti
g_free
(
Tekst
);
}
// Näita status bar'il teksti
void
StatusBarMsg
(
ui
*
UI
,
char
*
Tekst
)
{
GtkStatusbar
*
StatusBar
=
UI
->
Tabid
[
UI
->
PraeguneTab
].
StatusBar
;
gtk_statusbar_pop
(
StatusBar
,
STATUSBAR_TEKST
);
// Võta eelmine tekst ära
gtk_statusbar_push
(
StatusBar
,
STATUSBAR_TEKST
,
Tekst
);
// Näita teksti
}
statusbar.h
View file @
747d86ac
...
...
@@ -3,6 +3,11 @@
#include "ceditor.h"
// Status bar'i sõnumite id'd
#define STATUSBAR_RIDAVEERG 0
#define STATUSBAR_TEKST 1
void
UuendaRidaVeerg
(
GtkTextBuffer
*
Puhver
,
GtkStatusbar
*
StatusBar
);
void
StatusBarMsg
(
ui
*
UI
,
char
*
Tekst
);
#endif // STATUSBAR_H
tab.c
View file @
747d86ac
...
...
@@ -22,7 +22,6 @@ void LisaTab(ui *UI)
// Tekstiaken
Tab
->
TextView
=
gtk_source_view_new
();
// Loo tekstiaken
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
...
...
ui.c
View file @
747d86ac
...
...
@@ -95,7 +95,7 @@ ui *LooUI()
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
GtkWidget
*
KompMenuKaivita
=
gtk_menu_item_new_with_label
(
"Käivita
programm"
);
// Kompileeri->Käivita programm
// Menüü nupud menu bar'i
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
UI
->
MenuBar
),
FailMenuNupp
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
UI
->
MenuBar
),
KompMenuNupp
);
...
...
@@ -116,8 +116,8 @@ ui *LooUI()
// 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
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
//ToolBar
UI
->
ToolBar
=
gtk_toolbar_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