00001
00002
00003
00004
00005
00006
00007
00008 void DLG_EditorOPTIONS(GtkWidget *widget, gpointer data)
00009 {
00010
00011 static GtkWidget *FrmOpt, *Hbox, *TXTbox;
00012 PangoFontDescription *font_desc;
00013 GtkSourceLanguagesManager *lm;
00014 GtkSourceLanguage *language = NULL;
00015 GtkSourceBuffer *sBuf;
00016
00017 GtkWidget *bouton;
00018
00019
00020 FrmOpt = Creer_Fenetre("Options", 0,0,400,200, TRUE, FALSE);
00021 g_signal_connect(G_OBJECT(FrmOpt), "destroy", G_CALLBACK(DLG_Close),
00022 G_OBJECT(FrmOpt));
00023
00024 gtk_window_set_resizable (GTK_WINDOW (FrmOpt), FALSE);
00025
00026
00027 Hbox = gtk_hbox_new(FALSE, 0);
00028 gtk_container_add(GTK_CONTAINER(FrmOpt), Hbox);
00029
00030
00031 bouton = gtk_button_new_with_label("bouton 1");
00032 gtk_box_pack_start(GTK_BOX(Hbox), bouton, FALSE, FALSE, 0);
00033 gtk_widget_show(bouton);
00034
00035 bouton = gtk_button_new_with_label("bouton 2");
00036 gtk_box_pack_start(GTK_BOX(Hbox), bouton, FALSE, FALSE, 0);
00037 gtk_widget_show(bouton);
00038
00039 bouton = gtk_button_new_with_label("bouton 3");
00040 gtk_box_pack_start(GTK_BOX(Hbox), bouton, FALSE, FALSE, 0);
00041 gtk_widget_show(bouton);
00042
00043
00044 lm = gtk_source_languages_manager_new();
00045 sBuf = GTK_SOURCE_BUFFER (gtk_source_buffer_new (NULL));
00046 g_object_set_data_full (G_OBJECT (sBuf), "languages-manager",lm,
00047 (GDestroyNotify) g_object_unref);
00048 language = gtk_source_languages_manager_get_language_from_mime_type (lm, AppMIME);
00049 gtk_source_buffer_set_language (sBuf, language);
00050 g_object_set (G_OBJECT (sBuf), "highlight", TRUE, NULL);
00051
00052
00053 TXTbox = gtk_source_view_new_with_buffer(sBuf);
00054 gtk_container_add (GTK_CONTAINER (Hbox), TXTbox);
00055 font_desc = pango_font_description_from_string ("Mono 8");
00056 gtk_widget_modify_font (TXTbox, font_desc);
00057 pango_font_description_free (font_desc);
00058
00059
00060
00061 Fichier_Charger(AppTEMPLATE, sBuf);
00062
00063
00064 gtk_widget_show_all(FrmOpt);
00065 }
00066
00067
00068
00069 void DLG_Close (GtkWidget *widget, gpointer data)
00070 {
00071
00072 gtk_widget_destroy(GTK_WIDGET(data));
00073 }
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087 void BtnICON_Click()
00088 {
00089 GtkFileFilter *FILTER;
00090 GtkWidget *p_dialog = gtk_file_chooser_dialog_new("Choisir Icone", NULL,
00091 GTK_FILE_CHOOSER_ACTION_OPEN,
00092 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
00093 GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL);
00094
00095 FILTER = gtk_file_filter_new ();
00096 gtk_file_filter_add_pattern (FILTER, "*.xpm");
00097 gtk_file_filter_add_pattern (FILTER, "*.png");
00098 gtk_file_filter_add_pattern (FILTER, "*.gif");
00099 gtk_file_filter_add_pattern (FILTER, "*.ico");
00100 gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(p_dialog), FILTER);
00101
00102 if (gtk_dialog_run (GTK_DIALOG (p_dialog)) == GTK_RESPONSE_ACCEPT)
00103 {
00104 ProjetICON = gtk_file_chooser_get_preview_filename(GTK_FILE_CHOOSER(p_dialog));
00105
00106 }
00107 gtk_widget_destroy (p_dialog);
00108 }
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133 void DLG_ProjectOPTIONS (void)
00134 {
00135 GtkWidget *Frm, *table1;
00136 GtkWidget *label;
00137 GtkWidget *pImage, *button;
00138 GtkWidget *box2;
00139 GSList *group;
00140
00141 Frm = Creer_Fenetre("Propriétés du projet", 0,0,500,160, TRUE, FALSE);
00142 g_signal_connect(G_OBJECT(Frm), "destroy", G_CALLBACK(EditorOPTIONS_Close),
00143 G_OBJECT(Frm));
00144 table1 = gtk_table_new (10, 2, FALSE);
00145 gtk_container_add (GTK_CONTAINER (Frm), table1);
00146
00147
00148 button = gtk_button_new ();
00149 g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (BtnICON_Click),
00150 NULL);
00151 box2 = gtk_vbox_new (FALSE, 5);
00152 gtk_container_set_border_width (GTK_CONTAINER (box2), 2);
00153 pImage = gtk_image_new_from_file(ProjetICON);
00154 gtk_box_pack_start(GTK_BOX(box2), pImage, FALSE, FALSE, 5);
00155 gtk_container_add (GTK_CONTAINER (button), box2);
00156 gtk_table_attach (GTK_TABLE (table1), button, 0,1, 0,1,
00157 (GtkAttachOptions) (GTK_FILL),(GtkAttachOptions) (0), 0, 0);
00158
00159
00160 TxtEDOptions[0] = Ajouter_Prop("Nom du Projet", 1, 2, ProjetNOMssExt, table1);
00161
00162
00163 label = gtk_label_new ("Type de Projet");
00164 gtk_table_attach (GTK_TABLE (table1), label, 0, 1, 2, 3,
00165 (GtkAttachOptions) (GTK_FILL),(GtkAttachOptions) (0), 0, 0);
00166
00167 CmbEDoptions[0] = gtk_combo_box_new_text ();
00168 gtk_table_attach (GTK_TABLE (table1), CmbEDoptions[0], 1, 2, 2, 3,
00169 (GtkAttachOptions) (GTK_FILL),(GtkAttachOptions) (0), 0, 0);
00170
00171 gtk_combo_box_append_text (GTK_COMBO_BOX (CmbEDoptions[0]), "Application Console");
00172 gtk_combo_box_append_text (GTK_COMBO_BOX (CmbEDoptions[0]), "Application GUI GTK");
00173 gtk_combo_box_append_text (GTK_COMBO_BOX (CmbEDoptions[0]), "Librairie statique");
00174 gtk_combo_box_append_text (GTK_COMBO_BOX (CmbEDoptions[0]), "Librairie Dynamique");
00175
00176 gtk_combo_box_set_active (GTK_COMBO_BOX (CmbEDoptions[0]), ProjetTYPE);
00177
00178
00179 TxtEDOptions[1] = Ajouter_Prop("Arguments de Compil", 3, 4, ProjetOPT, table1);
00180 TxtEDOptions[2] = Ajouter_Prop("Nom de l' exécutable", 4, 5, ProjetEXEname, table1);
00181 TxtEDOptions[3] = Ajouter_Prop("Exec params", 5, 6, ProjetARGS, table1);
00182
00183
00184 label = gtk_label_new ("Utiliser Makefile");
00185 gtk_table_attach (GTK_TABLE (table1), label, 0, 1, 6, 7,
00186 (GtkAttachOptions) (GTK_FILL),(GtkAttachOptions) (0), 0, 0);
00187
00188
00189 box2 = gtk_vbox_new (FALSE, 5);
00190 gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
00191 gtk_table_attach (GTK_TABLE (table1), box2, 1, 2, 7, 8,
00192 (GtkAttachOptions) (GTK_FILL),(GtkAttachOptions) (0), 0, 0);
00193
00194 Mak[0] = gtk_radio_button_new_with_label (NULL, "Non, pas de Makefile");
00195 gtk_box_pack_start (GTK_BOX (box2), Mak[0], TRUE, TRUE, 0);
00196
00197 group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (Mak[0]));
00198 Mak[1] = gtk_radio_button_new_with_label (group, "Oui, Utiliser Makefile");
00199 gtk_box_pack_start (GTK_BOX (box2), Mak[1], TRUE, TRUE, 0);
00200
00201 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (Mak[ProjetUseMAKEFILE]), TRUE);
00202
00203
00204 TxtEDOptions[4] = Ajouter_Prop("Includes", 8, 9, ProjetINCS, table1);
00205 TxtEDOptions[5] = Ajouter_Prop("Libs", 9, 10, ProjetLIBS, table1);
00206
00207
00208 gtk_widget_show_all(Frm);
00209
00210 }
00211
00212
00213
00214 GtkWidget *Ajouter_Prop(gchar *caption, gint a, gint b, gchar *var, GtkWidget *table)
00215 {
00216 GtkWidget *T = gtk_entry_new();
00217 GtkWidget *label = gtk_label_new (caption);
00218 gtk_table_attach (GTK_TABLE (table), label, 0, 1, a, b,
00219 (GtkAttachOptions) (GTK_FILL),(GtkAttachOptions) (0), 0, 0);
00220
00221 gtk_entry_set_text (GTK_ENTRY (T), var);
00222
00223 gtk_table_attach (GTK_TABLE (table), T, 1, 2, a, b,
00224 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
00225 (GtkAttachOptions) (0), 0, 0);
00226 return T;
00227 }
00228
00229
00230
00231
00232 void EditorOPTIONS_Close()
00233 {
00234 const gchar *s;
00235 gint i;
00236
00237 s = gtk_entry_get_text(GTK_ENTRY(TxtEDOptions[0]));
00238 if (g_strcasecmp(ProjetNOMssExt, s)!=0) ProjetNOMssExt = g_strdup(s);
00239
00240 i = gtk_combo_box_get_active (GTK_COMBO_BOX(CmbEDoptions[0]));
00241 if (i != ProjetTYPE) ProjetTYPE = i;
00242
00243 s = gtk_entry_get_text(GTK_ENTRY(TxtEDOptions[1]));
00244 if (g_strcasecmp(ProjetOPT, s)!=0) ProjetOPT = g_strdup(s);
00245
00246 s = gtk_entry_get_text(GTK_ENTRY(TxtEDOptions[2]));
00247 if (g_strcasecmp(ProjetEXEname, s)!=0) ProjetEXEname = g_strdup(s);
00248
00249 s = gtk_entry_get_text(GTK_ENTRY(TxtEDOptions[3]));
00250 if (g_strcasecmp(ProjetARGS, s)!=0) ProjetARGS = g_strdup(s);
00251
00252 i = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (Mak[0]));
00253 if (i != ProjetUseMAKEFILE) ProjetUseMAKEFILE = i;
00254 i = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (Mak[1]));
00255 if (i != ProjetUseMAKEFILE) ProjetUseMAKEFILE = i;
00256
00257 s = gtk_entry_get_text(GTK_ENTRY(TxtEDOptions[4]));
00258 if (g_strcasecmp(ProjetINCS, s)!=0) ProjetINCS = g_strdup(s);
00259
00260 s = gtk_entry_get_text(GTK_ENTRY(TxtEDOptions[5]));
00261 if (g_strcasecmp(ProjetLIBS, s)!=0) ProjetLIBS = g_strdup(s);
00262 }