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
047cc8ee
authored
Mar 15, 2022
by
karudu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Vahekaardid
parent
e945762c
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
222 additions
and
114 deletions
ceditor.c
ceditor.h
saveload.c → menubar.c
menubar.h
saveload.h
tab.c
tab.h
ui.c
ui.h
ceditor.c
View file @
047cc8ee
#include "ceditor.h"
#include "ui.h"
/* TODO
Faili salvestamise prompt sulgemisel/uue avamisel
Klahvikombinatsioonid
*/
...
...
ceditor.h
View file @
047cc8ee
...
...
@@ -2,11 +2,38 @@
#define CEDITOR_H
#include <gtk/gtk.h>
#include "ui.h"
#ifdef SOURCEVIEW
#include <gtksourceview/gtksource.h>
#endif
typedef
struct
{
GtkWidget
*
Aken
;
// Programmi aken
char
*
FailiNimi
;
// Viit faili nimele, 0 kui nime veel pole
GtkWidget
*
Pealkiri
;
// Vahekaardi pealkiri
GtkWidget
*
Box
;
// Vahekaardi box
GtkWidget
*
TextView
;
// Vahekaardi tekstiaken
GtkTextView
*
Puhver
;
// Vahekaardi tekstipuhver
GtkWidget
*
ScrollWindow
;
// Tekstiakna scroll
GtkWidget
*
StatusBar
;
// Status bar
}
tab
;
typedef
struct
{
GtkWidget
*
Aken
;
// Programmi aken
GtkWidget
*
Box
;
// Akna box
GtkWidget
*
MenuBar
;
// Ülaosa menüü
GtkWidget
*
Notebook
;
// Notebook vahekaartidega
// Viited nuppudele nende sisse/välja lülitamiseks
GtkWidget
*
FailMenuSalvesta
;
GtkWidget
*
FailMenuSalvestaN
;
GtkWidget
*
FailMenuSulgeV
;
tab
*
Tabid
;
// Vahekaartide massiiv
int
PraeguneTab
;
// Praegune valitud vahekaart
int
TabidN
;
// Mitu vahekaarti on avatud
}
ui
;
#endif // CEDITOR_H
saveload
.c
→
menubar
.c
View file @
047cc8ee
#include "
saveload
.h"
#include "
menubar
.h"
void
UusFail
(
GtkWidget
*
Nupp
,
gpointer
Data
)
// Loob uue vahekaardi
void
Uus
(
GtkWidget
*
Nupp
,
gpointer
Data
)
{
// TODO praeguse faili salvestamise prompt
tab
*
Tab
=
(
tab
*
)
Data
;
GtkTextBuffer
*
Puhver
=
Tab
->
Puhver
;
GtkTextIter
TekstA
,
TekstL
;
gtk_text_buffer_get_start_iter
(
Puhver
,
&
TekstA
);
gtk_text_buffer_get_end_iter
(
Puhver
,
&
TekstL
);
gtk_text_buffer_delete
(
Puhver
,
&
TekstA
,
&
TekstL
);
gtk_text_buffer_set_modified
(
Puhver
,
FALSE
);
ui
*
UI
=
(
ui
*
)
Data
;
if
(
Tab
->
FailiNimi
)
g_free
(
Tab
->
FailiNimi
);
// Loo uus vahekaart
LisaTab
(
UI
);
tab
*
Tab
=
&
UI
->
Tabid
[
UI
->
TabidN
-
1
];
Tab
->
FailiNimi
=
0
;
UuendaPealkirja
(
Tab
->
Aken
,
0
);
gtk_notebook_set_current_page
(
UI
->
Notebook
,
UI
->
TabidN
-
1
);
// Näita uut vahekaarti
// Muuda need uuesti vajutatavaks, kui ennem polnud
gtk_widget_set_sensitive
(
UI
->
FailMenuSalvesta
,
TRUE
);
gtk_widget_set_sensitive
(
UI
->
FailMenuSalvestaN
,
TRUE
);
gtk_widget_set_sensitive
(
UI
->
FailMenuSulgeV
,
TRUE
);
}
void
AvaFail
(
GtkWidget
*
Nupp
,
gpointer
Data
)
// Avab faili ja loeb selle teksti vahekaarti
void
Ava
(
GtkWidget
*
Nupp
,
gpointer
Data
)
{
tab
*
Tab
=
(
tab
*
)
Data
;
ui
*
UI
=
(
ui
*
)
Data
;
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
,
"Tühista"
,
GTK_RESPONSE_CANCEL
,
"Ava"
,
GTK_RESPONSE_ACCEPT
,
NULL
);
gint
Vastus
=
gtk_dialog_run
(
GTK_DIALOG
(
Dialog
));
if
(
Vastus
==
GTK_RESPONSE_ACCEPT
)
if
(
Vastus
==
GTK_RESPONSE_ACCEPT
)
// Ava, kui vajutati accept
{
char
*
Nimi
=
gtk_file_chooser_get_filename
(
GTK_FILE_CHOOSER
(
Dialog
));
gchar
*
Sisu
;
GError
*
Viga
=
NULL
;
// TODO paremad veateated
if
(
g_file_get_contents
(
Nimi
,
&
Sisu
,
NULL
,
&
Viga
))
if
(
g_file_get_contents
(
Nimi
,
&
Sisu
,
NULL
,
&
Viga
))
// Proovi faili sisu lugeda
{
if
(
g_utf8_validate
(
Sisu
,
-
1
,
NULL
))
{
gtk_text_buffer_set_text
(
Puhver
,
Sisu
,
-
1
);
gtk_text_buffer_set_text
(
Puhver
,
Sisu
,
-
1
);
// Kopeeri fail puhvrisse
Tab
->
FailiNimi
=
Nimi
;
Uuenda
Pealkirja
(
Tab
->
Aken
,
Nimi
);
Uuenda
TabiPealkirja
(
Tab
,
Nimi
);
}
else
{
...
...
@@ -51,6 +52,7 @@ void AvaFail(GtkWidget *Nupp, gpointer Data)
}
else
{
// Faili ei saanud lugeda
printf
(
"Viga faili avamisel: %s
\n
"
,
Viga
->
message
);
g_error_free
(
Viga
);
g_free
(
Nimi
);
...
...
@@ -59,9 +61,11 @@ void AvaFail(GtkWidget *Nupp, gpointer Data)
gtk_widget_destroy
(
Dialog
);
}
void
SalvestaFail
(
GtkWidget
*
Nupp
,
gpointer
Data
)
// Salvestab vahekaardi teksti praegusesse faili
void
Salvesta
(
GtkWidget
*
Nupp
,
gpointer
Data
)
{
tab
*
Tab
=
(
tab
*
)
Data
;
ui
*
UI
=
(
ui
*
)
Data
;
tab
*
Tab
=
&
UI
->
Tabid
[
UI
->
PraeguneTab
];
GtkTextBuffer
*
Puhver
=
Tab
->
Puhver
;
char
*
Nimi
;
...
...
@@ -105,7 +109,7 @@ void SalvestaFail(GtkWidget *Nupp, gpointer Data)
if
(
!
Tab
->
FailiNimi
)
{
Tab
->
FailiNimi
=
Nimi
;
Uuenda
Pealkirja
(
Tab
->
Aken
,
Nimi
);
Uuenda
TabiPealkirja
(
Tab
,
Nimi
);
}
else
g_free
(
Nimi
);
g_free
(
Sisu
);
...
...
@@ -113,9 +117,11 @@ void SalvestaFail(GtkWidget *Nupp, gpointer Data)
if
(
Dialog
)
gtk_widget_destroy
(
Dialog
);
}
void
SalvestaFailNimega
(
GtkWidget
*
Nupp
,
gpointer
Data
)
// Salvestab vahekaardi teksti vabalt valitud faili
void
SalvestaNimega
(
GtkWidget
*
Nupp
,
gpointer
Data
)
{
tab
*
Tab
=
(
tab
*
)
Data
;
ui
*
UI
=
(
ui
*
)
Data
;
tab
*
Tab
=
&
UI
->
Tabid
[
UI
->
PraeguneTab
];
GtkTextBuffer
*
Puhver
=
Tab
->
Puhver
;
GtkWidget
*
Dialog
=
gtk_file_chooser_dialog_new
(
"Salvesta fail"
,
NULL
,
GTK_FILE_CHOOSER_ACTION_SAVE
,
"Tühista"
,
GTK_RESPONSE_CANCEL
,
...
...
@@ -144,7 +150,7 @@ void SalvestaFailNimega(GtkWidget *Nupp, gpointer Data)
if
(
!
Tab
->
FailiNimi
)
{
Tab
->
FailiNimi
=
Nimi
;
Uuenda
Pealkirja
(
Tab
->
Aken
,
Nimi
);
Uuenda
TabiPealkirja
(
Tab
,
Nimi
);
}
else
g_free
(
Nimi
);
g_free
(
Sisu
);
...
...
@@ -153,3 +159,18 @@ void SalvestaFailNimega(GtkWidget *Nupp, gpointer Data)
gtk_widget_destroy
(
Dialog
);
}
// Sulgeb praeguse vahekaardi
void
SulgeVahekaart
(
GtkWidget
*
Nupp
,
gpointer
Data
)
{
ui
*
UI
=
(
ui
*
)
Data
;
KustutaTab
(
UI
,
UI
->
PraeguneTab
);
if
(
UI
->
TabidN
==
0
)
{
gtk_widget_set_sensitive
(
UI
->
FailMenuSalvesta
,
FALSE
);
gtk_widget_set_sensitive
(
UI
->
FailMenuSalvestaN
,
FALSE
);
gtk_widget_set_sensitive
(
UI
->
FailMenuSulgeV
,
FALSE
);
}
}
menubar.h
0 → 100644
View file @
047cc8ee
#ifndef MENUBAR_H
#define MENUBAR_H
#include "ceditor.h"
void
Uus
(
GtkWidget
*
Nupp
,
gpointer
Data
);
void
Ava
(
GtkWidget
*
Nupp
,
gpointer
Data
);
void
Salvesta
(
GtkWidget
*
Nupp
,
gpointer
Data
);
void
SalvestaNimega
(
GtkWidget
*
Nupp
,
gpointer
Data
);
void
SulgeVahekaart
(
GtkWidget
*
Nupp
,
gpointer
Data
);
#endif // MENUBAR_H
saveload.h
deleted
100644 → 0
View file @
e945762c
#ifndef SAVELOAD_H
#define SAVELOAD_H
#include "ceditor.h"
void
UusFail
(
GtkWidget
*
Nupp
,
gpointer
Data
);
void
AvaFail
(
GtkWidget
*
Nupp
,
gpointer
Data
);
void
SalvestaFail
(
GtkWidget
*
Nupp
,
gpointer
Data
);
void
SalvestaFailNimega
(
GtkWidget
*
Nupp
,
gpointer
Data
);
#endif // SAVELOAD_H
tab.c
0 → 100644
View file @
047cc8ee
#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
#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
// 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, uuendab rida/veergu
g_signal_connect
(
Tab
->
Puhver
,
"changed"
,
G_CALLBACK
(
UuendaRidaVeerg
),
Tab
->
StatusBar
);
// 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)"
);
// 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
}
// Kustuta vahekaarti indeksil
void
KustutaTab
(
ui
*
UI
,
int
Indeks
)
{
// Kustuta vahekaart
gtk_notebook_remove_page
(
GTK_NOTEBOOK
(
UI
->
Notebook
),
Indeks
);
int
TabidN
=
UI
->
TabidN
;
// Kui massiivis on pärast kustutatud vahekaarti neid veel,
// siis nihuta need õigele kohale
for
(
int
i
=
Indeks
;
i
<
TabidN
-
1
;
i
++
)
{
UI
->
Tabid
[
i
]
=
UI
->
Tabid
[
i
+
1
];
}
if
(
TabidN
==
1
)
{
g_free
(
UI
->
Tabid
);
// Vabasta massiiv, kui see on nüüd tühi
}
else
{
UI
->
Tabid
=
g_realloc
(
UI
->
Tabid
,
sizeof
(
tab
)
*
(
TabidN
-
1
));
// Eemalda vahekaart massiivist
}
UI
->
TabidN
--
;
}
// 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
);
}
// Kutsutakse igal vahekaardi muutmisel
void
TabMuudetud
(
GtkWidget
*
Notebook
,
GtkWidget
*
Tab
,
guint
Indeks
,
gpointer
Data
)
{
ui
*
UI
=
(
ui
*
)
Data
;
UI
->
PraeguneTab
=
Indeks
;
}
tab.h
0 → 100644
View file @
047cc8ee
#ifndef TAB_H
#define TAB_H
#include "ceditor.h"
#include "statusbar.h"
#include "textview.h"
void
LisaTab
(
ui
*
UI
);
void
KustutaTab
(
ui
*
UI
,
int
Indeks
);
void
UuendaTabiPealkirja
(
tab
*
Tab
,
char
*
Nimi
);
void
TabMuudetud
(
GtkWidget
*
Notebook
,
GtkWidget
*
Tab
,
guint
Indeks
,
gpointer
Data
);
#endif // TAB_H
ui.c
View file @
047cc8ee
#include "ui.h"
// Uuenda akna pealkirjas näidatud failinime
void
UuendaPealkirja
(
GtkWidget
*
Aken
,
char
*
Nimi
)
{
if
(
Nimi
)
{
char
*
Pealkiri
=
g_strdup_printf
(
"%s (%s)"
,
PEALKIRI
,
Nimi
);
gtk_window_set_title
(
GTK_WINDOW
(
Aken
),
Pealkiri
);
g_free
(
Pealkiri
);
}
else
{
char
*
Pealkiri
=
g_strdup_printf
(
"%s (uus fail)"
,
PEALKIRI
);
gtk_window_set_title
(
GTK_WINDOW
(
Aken
),
Pealkiri
);
g_free
(
Pealkiri
);
}
}
// Loo programmi kasutajaliides
ui
*
LooUI
()
{
...
...
@@ -26,33 +9,21 @@ ui *LooUI()
UI
->
Aken
=
gtk_window_new
(
GTK_WINDOW_TOPLEVEL
);
// Loo aken
gtk_window_set_position
(
GTK_WINDOW
(
UI
->
Aken
),
GTK_WIN_POS_CENTER
);
// Aken ekraani keskel
gtk_window_set_default_size
(
GTK_WINDOW
(
UI
->
Aken
),
800
,
600
);
// Akna suurus
UuendaPealkirja
(
UI
->
Aken
,
0
);
// Pealkiri
gtk_window_set_title
(
GTK_WINDOW
(
UI
->
Aken
),
PEALKIRI
);
// Pealkiri
g_signal_connect_swapped
(
G_OBJECT
(
UI
->
Aken
),
"destroy"
,
G_CALLBACK
(
gtk_main_quit
),
NULL
);
// Close nupu callback
// Box
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
// Tekstiaken
#ifdef SOURCEVIEW
UI
->
TextView
=
gtk_source_view_new
();
// Loo tekstiaken
#else
UI
->
TextView
=
gtk_text_view_new
();
// Loo tekstiaken
#endif
// Notebook
UI
->
Notebook
=
gtk_notebook_new
();
g_signal_connect
(
UI
->
Notebook
,
"switch-page"
,
G_CALLBACK
(
TabMuudetud
),
UI
);
// Tab'i muutmise callback
// Praegu ainult üks "tab"
UI
->
Tabid
=
g_malloc
(
sizeof
(
tab
)
*
1
);
// Loo esimene tab
UI
->
TabidN
=
0
;
UI
->
Tabid
[
0
].
FailiNimi
=
0
;
// Faili veel pole
UI
->
Tabid
[
0
].
Aken
=
UI
->
Aken
;
// Teksti puhver
UI
->
Tabid
[
0
].
Puhver
=
gtk_text_view_get_buffer
(
GTK_TEXT_VIEW
(
UI
->
TextView
));
// Tekstiakna teksti puhver
// Scroll window
UI
->
ScrollWindow
=
gtk_scrolled_window_new
(
NULL
,
NULL
);
// Loo scroll aken
gtk_container_add
(
GTK_CONTAINER
(
UI
->
ScrollWindow
),
UI
->
TextView
);
// Scroll aknasse läheb tekstiaken
gtk_scrolled_window_set_policy
(
GTK_SCROLLED_WINDOW
(
UI
->
ScrollWindow
),
GTK_POLICY_AUTOMATIC
,
GTK_POLICY_AUTOMATIC
);
// Konfigureerimine
gtk_scrolled_window_set_shadow_type
(
GTK_SCROLLED_WINDOW
(
UI
->
ScrollWindow
),
GTK_SHADOW_ETCHED_IN
);
LisaTab
(
UI
);
UI
->
PraeguneTab
=
0
;
// Menu bar
UI
->
MenuBar
=
gtk_menu_bar_new
();
// Loo menu bar
...
...
@@ -62,7 +33,11 @@ ui *LooUI()
GtkWidget
*
FailMenuUus
=
gtk_menu_item_new_with_label
(
"Uus"
);
// Fail->Uus
GtkWidget
*
FailMenuAva
=
gtk_menu_item_new_with_label
(
"Ava"
);
// Fail->Ava
GtkWidget
*
FailMenuSalvesta
=
gtk_menu_item_new_with_label
(
"Salvesta"
);
// Fail->Salvesta
UI
->
FailMenuSalvesta
=
FailMenuSalvesta
;
GtkWidget
*
FailMenuSalvestaN
=
gtk_menu_item_new_with_label
(
"Salvesta nimega"
);
// Fail->Salvesta nimega
UI
->
FailMenuSalvestaN
=
FailMenuSalvestaN
;
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
// Menüü nupud menu bar'i
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
UI
->
MenuBar
),
FailMenuNupp
);
...
...
@@ -71,30 +46,23 @@ ui *LooUI()
gtk_menu_item_set_submenu
(
GTK_MENU_ITEM
(
FailMenuNupp
),
FailMenu
);
// Fail menüü
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
FailMenu
),
FailMenuUus
);
// Fail->Uus
g_signal_connect
(
FailMenuUus
,
"activate"
,
G_CALLBACK
(
Uus
Fail
),
&
UI
->
Tabid
[
0
]
);
g_signal_connect
(
FailMenuUus
,
"activate"
,
G_CALLBACK
(
Uus
),
UI
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
FailMenu
),
FailMenuAva
);
// Fail->Ava
g_signal_connect
(
FailMenuAva
,
"activate"
,
G_CALLBACK
(
Ava
Fail
),
&
UI
->
Tabid
[
0
]
);
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
Fail
),
&
UI
->
Tabid
[
0
]
);
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
(
SalvestaFailNimega
),
&
UI
->
Tabid
[
0
]);
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
(
gtk_main_quit
),
NULL
);
// Status bar
UI
->
StatusBar
=
gtk_statusbar_new
();
// Loo status bar
// Teksti muutuse callback, uuendab rida/veergu
g_signal_connect
(
UI
->
Tabid
[
0
].
Puhver
,
"changed"
,
G_CALLBACK
(
UuendaRidaVeerg
),
UI
->
StatusBar
);
// Copy/paste lohistamise callback, uuendab samuti
g_signal_connect_object
(
UI
->
Tabid
[
0
].
Puhver
,
"mark_set"
,
G_CALLBACK
(
TekstMarkSet
),
UI
->
StatusBar
,
0
);
// Pane kõik õiges järjekorras box'i
gtk_box_pack_start
(
GTK_BOX
(
UI
->
Box
),
UI
->
MenuBar
,
FALSE
,
FALSE
,
0
);
gtk_box_pack_start
(
GTK_BOX
(
UI
->
Box
),
UI
->
ScrollWindow
,
TRUE
,
TRUE
,
0
);
gtk_box_pack_start
(
GTK_BOX
(
UI
->
Box
),
UI
->
StatusBar
,
FALSE
,
FALSE
,
0
);
UuendaRidaVeerg
(
UI
->
Tabid
[
0
].
Puhver
,
GTK_STATUSBAR
(
UI
->
StatusBar
));
// Uuenda status bar'i, et seal midagi oleks
gtk_box_pack_start
(
GTK_BOX
(
UI
->
Box
),
UI
->
Notebook
,
TRUE
,
TRUE
,
0
);
return
UI
;
}
ui.h
View file @
047cc8ee
...
...
@@ -2,9 +2,8 @@
#define UI_H
#include "ceditor.h"
#include "saveload.h"
#include "textview.h"
#include "statusbar.h"
#include "tab.h"
#include "menubar.h"
#ifdef SOURCEVIEW
#define PEALKIRI "CEditor SourceView"
...
...
@@ -12,26 +11,6 @@
#define PEALKIRI "CEditor TextView"
#endif
typedef
struct
{
GtkWidget
*
Aken
;
// Programmi aken
char
*
FailiNimi
;
// Viit faili nimele, 0 kui nime veel pole
GtkTextBuffer
*
Puhver
;
// Vahekaardi tekstipuhver
}
tab
;
typedef
struct
{
GtkWidget
*
Aken
;
// Programmi aken
GtkWidget
*
Box
;
// Akna box
GtkWidget
*
MenuBar
;
// Ülaosa menüü
GtkWidget
*
TextView
;
// Tekstiaken
GtkWidget
*
ScrollWindow
;
// Tekstiakna scroll
GtkWidget
*
StatusBar
;
// Status bar allpool
tab
*
Tabid
;
// Vahekaartide massiiv
int
TabidN
;
// Mitu vahekaarti on avatud
}
ui
;
ui
*
LooUI
();
#endif // UI_H
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