1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
|
#include <stdio.h>
#include <stdlib.h>
#include <gtk/gtk.h>
#include <string.h>
int main(int argc, char **argv)
{
gtk_init(&argc, &argv);
GtkWidget *Fenetre; // Pointeur contenant la fenetre GTK
GtkWidget *Table_Widget; // Table des Widgets
GtkWidget *Lab_Apache;
FILE *apache2;
FILE *mysql;
GtkWidget *Lab_MySQL;
GtkWidget *DemarrerApache;
GtkWidget *RedemarrerApache;
GtkWidget *ArreterApache;
GtkWidget *DemarrerMySQL;
GtkWidget *RedemarrerMySQL;
GtkWidget *ArreterMySQL;
GtkWidget *InfosLog;
GdkColor color;
GtkTextBuffer *BufferLog;
GtkTextIter start;
GtkTextIter end;
color.pixel = 32;
color.red = 0;
color.green = 30000;
color.blue = 40000;
// Fonction de test d'existence d'Apache
void DetectionApache()
{
apache2 = fopen("/usr/sbin/apache2","r");
if(apache2 != NULL)
{
Lab_Apache = gtk_label_new("Apache2 : Detecte");
gtk_table_attach(GTK_TABLE(Table_Widget), Lab_Apache,0, 5, 0, 1,GTK_EXPAND, GTK_EXPAND,0, 0);
}
else
{
Lab_Apache = gtk_label_new("Apache2 : Non-detecte");
gtk_table_attach(GTK_TABLE(Table_Widget), Lab_Apache,0, 5, 0, 1,GTK_EXPAND, GTK_EXPAND,0, 0);
}
}
// Fonctions de test d'existence de MySQL
void DetectionMySQL()
{
mysql = fopen("/usr/bin/mysql","r");
if(mysql != NULL)
{
Lab_MySQL = gtk_label_new(" MySQL : Detecte");
gtk_table_attach(GTK_TABLE(Table_Widget), Lab_MySQL,0, 10, 0, 1,GTK_EXPAND, GTK_EXPAND,0, 0);
}
else
{
Lab_MySQL = gtk_label_new(" MySQL : Non-detecte");
gtk_table_attach(GTK_TABLE(Table_Widget), Lab_MySQL,0, 10, 0, 1,GTK_EXPAND, GTK_EXPAND,0, 0);
}
}
void LancerApache2()
{
system("/usr/sbin/apache2");
}
void RedemarrerApache2()
{
system("/etc/init.d/apache2 restart");
BufferLog = gtk_text_view_get_buffer(GTK_TEXT_VIEW(InfosLog));
gtk_text_buffer_get_start_iter(BufferLog,&start);
gtk_text_buffer_get_end_iter(BufferLog,&end);
gtk_text_view_set_buffer(GTK_ENTRY(InfosLog), "Apache redemarre avec succes"); // Ajout dans le log
}
void ArreterApache2()
{
system("/etc/init.d/apache2 stop");
}
void DemarrerSQL()
{
system("mysql");
}
// FONCTION A AJOUTER : REDEMARRER MYSQL
void ArreterSQL()
{
system(" mysql \\q ");
}
Fenetre = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_position(GTK_WINDOW(Fenetre), GTK_WIN_POS_CENTER);
gtk_window_set_title(GTK_WINDOW(Fenetre), "ApacheGUI 0.1");
gtk_window_set_default_size(GTK_WINDOW(Fenetre), 200, 200);
//---------------------- Widgets principaux ---------------------- //
Table_Widget = gtk_table_new(5, 4, TRUE);
gtk_container_add(GTK_CONTAINER(Fenetre), Table_Widget);
DetectionApache();
DetectionMySQL();
DemarrerApache = gtk_button_new_with_label(" Demarrer ");
RedemarrerApache = gtk_button_new_with_label("Redemarrer");
ArreterApache = gtk_button_new_with_label(" Arreter ");
DemarrerMySQL = gtk_button_new_with_label(" Demarrer ");
RedemarrerMySQL = gtk_button_new_with_label(" Redemarrer ");
ArreterMySQL = gtk_button_new_with_label(" Arreter ");
InfosLog = gtk_text_view_new();
//-------------------- Affichage des widgets et évènements ----------------//
gtk_table_attach(GTK_TABLE(Table_Widget), DemarrerApache,0, 5, 0, 4,GTK_EXPAND, GTK_EXPAND,0, 0);
gtk_table_attach(GTK_TABLE(Table_Widget), RedemarrerApache,0, 5, 0, 8,GTK_EXPAND, GTK_EXPAND,0, 0);
gtk_table_attach(GTK_TABLE(Table_Widget), ArreterApache,0 ,5, 0, 12, GTK_EXPAND, GTK_EXPAND, 0, 0);
gtk_table_attach(GTK_TABLE(Table_Widget), DemarrerMySQL,5, 10, 0, 4,GTK_EXPAND, GTK_EXPAND,0, 0); // Erreur possible dans la position : Premier paramètre, faire gaffe
gtk_table_attach(GTK_TABLE(Table_Widget), RedemarrerMySQL,5, 10, 0, 8,GTK_EXPAND, GTK_EXPAND,0, 0);
gtk_table_attach(GTK_TABLE(Table_Widget), ArreterMySQL,5 ,10, 0, 12, GTK_EXPAND, GTK_EXPAND, 0, 0);
gtk_table_attach(GTK_TABLE(Table_Widget), InfosLog, 0 ,10, 7, 12, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
// Connexion aux évènements
g_signal_connect(G_OBJECT(Fenetre), "destroy", G_CALLBACK(gtk_main_quit), NULL);
g_signal_connect(G_OBJECT(DemarrerApache), "clicked", G_CALLBACK(LancerApache2), NULL);
g_signal_connect(G_OBJECT(RedemarrerApache), "clicked", G_CALLBACK(RedemarrerApache2), NULL);
g_signal_connect(G_OBJECT(RedemarrerApache), "clicked", G_CALLBACK(RedemarrerApache2), NULL);
g_signal_connect(G_OBJECT(ArreterApache), "clicked", G_CALLBACK(ArreterApache2), NULL);
g_signal_connect(G_OBJECT(DemarrerMySQL), "clicked", G_CALLBACK(DemarrerSQL), NULL);
//EVENEMENT A AJOUTER : REDEMARRER MYSQL
g_signal_connect(G_OBJECT(ArreterMySQL), "clicked", G_CALLBACK(ArreterSQL), NULL);
gtk_widget_modify_bg(InfosLog, GTK_STATE_NORMAL, &color);
gtk_widget_show_all(Fenetre);
gtk_main();
return (0);
} |
Partager