(メッセージはありません)
@@ -174,15 +174,20 @@ | ||
174 | 174 | { |
175 | 175 | GtkWidget *SetupWindow; |
176 | 176 | GtkWidget *fixed2; |
177 | - GtkWidget *lblKnoppixSetupPath; | |
177 | + GtkWidget *RbSelectKNOPPIXSource1; | |
178 | + GSList *RbSelectKNOPPIXSource1_group = NULL; | |
179 | + GtkWidget *cbxSourceFileList; | |
178 | 180 | GtkWidget *RbSelectKNOPPIXSource2; |
179 | - GSList *RbSelectKNOPPIXSource2_group = NULL; | |
180 | - GtkWidget *RbSelectKNOPPIXSource1; | |
181 | 181 | GtkWidget *BtnOrgKnoppixSelectInHDD; |
182 | + GtkWidget *label9; | |
183 | + GtkWidget *label10; | |
184 | + GtkWidget *BtnKNOPPIXSourceCancel; | |
185 | + GtkWidget *BtnKNOPPIXSourceOK; | |
186 | + GtkWidget *txtSetupLog; | |
187 | + GtkWidget *lblKnoppixSetupPath; | |
182 | 188 | GtkWidget *chkSourceFileDelete; |
183 | - GtkWidget *BtnKNOPPIXSourceOK; | |
184 | - GtkWidget *BtnKNOPPIXSourceCancel; | |
185 | - GtkWidget *cbxSourceFileList; | |
189 | + GtkWidget *lbSetupStatus; | |
190 | + GtkWidget *btnSetupStop; | |
186 | 191 | |
187 | 192 | SetupWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL); |
188 | 193 | gtk_window_set_title (GTK_WINDOW (SetupWindow), _("\345\205\203KNOPPIX\343\201\256\346\272\226\345\202\231")); |
@@ -190,78 +195,117 @@ | ||
190 | 195 | fixed2 = gtk_fixed_new (); |
191 | 196 | gtk_widget_show (fixed2); |
192 | 197 | gtk_container_add (GTK_CONTAINER (SetupWindow), fixed2); |
193 | - gtk_widget_set_size_request (fixed2, 412, -1); | |
198 | + gtk_widget_set_size_request (fixed2, 472, 410); | |
194 | 199 | |
195 | - lblKnoppixSetupPath = gtk_label_new (_("/")); | |
196 | - gtk_widget_show (lblKnoppixSetupPath); | |
197 | - gtk_fixed_put (GTK_FIXED (fixed2), lblKnoppixSetupPath, 80, 216); | |
198 | - gtk_widget_set_size_request (lblKnoppixSetupPath, 300, 20); | |
199 | - GTK_WIDGET_SET_FLAGS (lblKnoppixSetupPath, GTK_CAN_FOCUS); | |
200 | - gtk_label_set_selectable (GTK_LABEL (lblKnoppixSetupPath), TRUE); | |
201 | - gtk_misc_set_alignment (GTK_MISC (lblKnoppixSetupPath), 0, 0.5); | |
202 | - | |
203 | - RbSelectKNOPPIXSource2 = gtk_radio_button_new_with_mnemonic (NULL, _("\343\201\231\343\201\247\343\201\253\343\203\200\343\202\246\343\203\263\343\203\255\343\203\274\343\203\211\343\201\227\343\201\246\343\201\204\343\202\213\343\203\207\343\203\274\343\202\277\343\202\222\345\210\251\347\224\250\343\201\231\343\202\213")); | |
204 | - gtk_widget_show (RbSelectKNOPPIXSource2); | |
205 | - gtk_fixed_put (GTK_FIXED (fixed2), RbSelectKNOPPIXSource2, 32, 144); | |
206 | - gtk_widget_set_size_request (RbSelectKNOPPIXSource2, 300, 21); | |
207 | - gtk_radio_button_set_group (GTK_RADIO_BUTTON (RbSelectKNOPPIXSource2), RbSelectKNOPPIXSource2_group); | |
208 | - RbSelectKNOPPIXSource2_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (RbSelectKNOPPIXSource2)); | |
209 | - | |
210 | 200 | RbSelectKNOPPIXSource1 = gtk_radio_button_new_with_mnemonic (NULL, _("\345\205\254\351\226\213\343\202\265\343\203\274\343\203\220\343\201\213\343\202\211\343\203\200\343\202\246\343\203\263\343\203\255\343\203\274\343\203\211\343\201\231\343\202\213")); |
211 | 201 | gtk_widget_show (RbSelectKNOPPIXSource1); |
212 | 202 | gtk_fixed_put (GTK_FIXED (fixed2), RbSelectKNOPPIXSource1, 32, 8); |
213 | 203 | gtk_widget_set_size_request (RbSelectKNOPPIXSource1, 300, 16); |
214 | - gtk_radio_button_set_group (GTK_RADIO_BUTTON (RbSelectKNOPPIXSource1), RbSelectKNOPPIXSource2_group); | |
215 | - RbSelectKNOPPIXSource2_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (RbSelectKNOPPIXSource1)); | |
204 | + gtk_radio_button_set_group (GTK_RADIO_BUTTON (RbSelectKNOPPIXSource1), RbSelectKNOPPIXSource1_group); | |
205 | + RbSelectKNOPPIXSource1_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (RbSelectKNOPPIXSource1)); | |
216 | 206 | gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (RbSelectKNOPPIXSource1), TRUE); |
217 | 207 | |
208 | + cbxSourceFileList = gtk_combo_box_entry_new_text (); | |
209 | + gtk_widget_show (cbxSourceFileList); | |
210 | + gtk_fixed_put (GTK_FIXED (fixed2), cbxSourceFileList, 112, 32); | |
211 | + gtk_widget_set_size_request (cbxSourceFileList, 336, 28); | |
212 | + gtk_combo_box_append_text (GTK_COMBO_BOX (cbxSourceFileList), _("http://www.osakac.ac.jp/ecip/knoppix/knoppix_v5.0.1CD_20060601-20060614+IPAFont_AC20060623.orekno.tar.gz")); | |
213 | + | |
214 | + RbSelectKNOPPIXSource2 = gtk_radio_button_new_with_mnemonic (NULL, _("\343\201\231\343\201\247\343\201\253\343\203\200\343\202\246\343\203\263\343\203\255\343\203\274\343\203\211\343\201\227\343\201\246\343\201\204\343\202\213\343\203\207\343\203\274\343\202\277\343\202\222\345\210\251\347\224\250\343\201\231\343\202\213")); | |
215 | + gtk_widget_show (RbSelectKNOPPIXSource2); | |
216 | + gtk_fixed_put (GTK_FIXED (fixed2), RbSelectKNOPPIXSource2, 32, 112); | |
217 | + gtk_widget_set_size_request (RbSelectKNOPPIXSource2, 300, 21); | |
218 | + gtk_radio_button_set_group (GTK_RADIO_BUTTON (RbSelectKNOPPIXSource2), RbSelectKNOPPIXSource1_group); | |
219 | + RbSelectKNOPPIXSource1_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (RbSelectKNOPPIXSource2)); | |
220 | + | |
218 | 221 | BtnOrgKnoppixSelectInHDD = gtk_button_new_from_stock ("gtk-open"); |
219 | 222 | gtk_widget_show (BtnOrgKnoppixSelectInHDD); |
220 | - gtk_fixed_put (GTK_FIXED (fixed2), BtnOrgKnoppixSelectInHDD, 64, 176); | |
223 | + gtk_fixed_put (GTK_FIXED (fixed2), BtnOrgKnoppixSelectInHDD, 344, 104); | |
221 | 224 | gtk_widget_set_size_request (BtnOrgKnoppixSelectInHDD, 112, 32); |
222 | 225 | |
223 | - chkSourceFileDelete = gtk_check_button_new_with_mnemonic (_("\350\247\243\345\207\215\345\276\214\343\200\201\343\203\200\343\202\246\343\203\263\343\203\255\343\203\274\343\203\211\343\203\225\343\202\241\343\202\244\343\203\253\343\202\222\345\211\212\351\231\244\343\201\231\343\202\213")); | |
224 | - gtk_widget_show (chkSourceFileDelete); | |
225 | - gtk_fixed_put (GTK_FIXED (fixed2), chkSourceFileDelete, 96, 64); | |
226 | - gtk_widget_set_size_request (chkSourceFileDelete, 288, 16); | |
226 | + label9 = gtk_label_new (_("Path:")); | |
227 | + gtk_widget_show (label9); | |
228 | + gtk_fixed_put (GTK_FIXED (fixed2), label9, 56, 152); | |
229 | + gtk_widget_set_size_request (label9, 26, 16); | |
227 | 230 | |
228 | - BtnKNOPPIXSourceOK = gtk_button_new_from_stock ("gtk-ok"); | |
229 | - gtk_widget_show (BtnKNOPPIXSourceOK); | |
230 | - gtk_fixed_put (GTK_FIXED (fixed2), BtnKNOPPIXSourceOK, 200, 256); | |
231 | - gtk_widget_set_size_request (BtnKNOPPIXSourceOK, 100, 32); | |
231 | + label10 = gtk_label_new (_("File:")); | |
232 | + gtk_widget_show (label10); | |
233 | + gtk_fixed_put (GTK_FIXED (fixed2), label10, 56, 40); | |
234 | + gtk_widget_set_size_request (label10, 26, 16); | |
232 | 235 | |
233 | 236 | BtnKNOPPIXSourceCancel = gtk_button_new_from_stock ("gtk-cancel"); |
234 | 237 | gtk_widget_show (BtnKNOPPIXSourceCancel); |
235 | - gtk_fixed_put (GTK_FIXED (fixed2), BtnKNOPPIXSourceCancel, 312, 256); | |
238 | + gtk_fixed_put (GTK_FIXED (fixed2), BtnKNOPPIXSourceCancel, 240, 192); | |
236 | 239 | gtk_widget_set_size_request (BtnKNOPPIXSourceCancel, 100, 32); |
237 | 240 | |
238 | - cbxSourceFileList = gtk_combo_box_entry_new_text (); | |
239 | - gtk_widget_show (cbxSourceFileList); | |
240 | - gtk_fixed_put (GTK_FIXED (fixed2), cbxSourceFileList, 64, 32); | |
241 | - gtk_widget_set_size_request (cbxSourceFileList, 336, 28); | |
242 | - gtk_combo_box_append_text (GTK_COMBO_BOX (cbxSourceFileList), _("http://www.osakac.ac.jp/ecip/knoppix/knoppix_v5.0.1CD_20060601-20060614+IPAFont_AC20060623.orekno.tar.gz")); | |
241 | + BtnKNOPPIXSourceOK = gtk_button_new_from_stock ("gtk-ok"); | |
242 | + gtk_widget_show (BtnKNOPPIXSourceOK); | |
243 | + gtk_fixed_put (GTK_FIXED (fixed2), BtnKNOPPIXSourceOK, 120, 192); | |
244 | + gtk_widget_set_size_request (BtnKNOPPIXSourceOK, 100, 32); | |
243 | 245 | |
246 | + txtSetupLog = gtk_text_view_new (); | |
247 | + gtk_widget_show (txtSetupLog); | |
248 | + gtk_fixed_put (GTK_FIXED (fixed2), txtSetupLog, 32, 272); | |
249 | + gtk_widget_set_size_request (txtSetupLog, 424, 88); | |
250 | + gtk_widget_set_sensitive (txtSetupLog, FALSE); | |
251 | + GTK_WIDGET_UNSET_FLAGS (txtSetupLog, GTK_CAN_FOCUS); | |
252 | + gtk_text_view_set_editable (GTK_TEXT_VIEW (txtSetupLog), FALSE); | |
253 | + | |
254 | + lblKnoppixSetupPath = gtk_label_new (_("/")); | |
255 | + gtk_widget_show (lblKnoppixSetupPath); | |
256 | + gtk_fixed_put (GTK_FIXED (fixed2), lblKnoppixSetupPath, 112, 152); | |
257 | + gtk_widget_set_size_request (lblKnoppixSetupPath, 300, 20); | |
258 | + GTK_WIDGET_SET_FLAGS (lblKnoppixSetupPath, GTK_CAN_FOCUS); | |
259 | + gtk_label_set_selectable (GTK_LABEL (lblKnoppixSetupPath), TRUE); | |
260 | + gtk_misc_set_alignment (GTK_MISC (lblKnoppixSetupPath), 0, 0.5); | |
261 | + | |
262 | + chkSourceFileDelete = gtk_check_button_new_with_mnemonic (_("\350\247\243\345\207\215\345\276\214\343\200\201\343\203\200\343\202\246\343\203\263\343\203\255\343\203\274\343\203\211\343\203\225\343\202\241\343\202\244\343\203\253\343\202\222\345\211\212\351\231\244\343\201\231\343\202\213")); | |
263 | + gtk_widget_show (chkSourceFileDelete); | |
264 | + gtk_fixed_put (GTK_FIXED (fixed2), chkSourceFileDelete, 112, 72); | |
265 | + gtk_widget_set_size_request (chkSourceFileDelete, 288, 16); | |
266 | + | |
267 | + lbSetupStatus = gtk_label_new (_("\351\200\262\350\241\214\347\212\266\346\263\201")); | |
268 | + gtk_widget_show (lbSetupStatus); | |
269 | + gtk_fixed_put (GTK_FIXED (fixed2), lbSetupStatus, 32, 248); | |
270 | + gtk_widget_set_size_request (lbSetupStatus, 80, 16); | |
271 | + gtk_widget_set_sensitive (lbSetupStatus, FALSE); | |
272 | + gtk_misc_set_alignment (GTK_MISC (lbSetupStatus), 0, 0.5); | |
273 | + | |
274 | + btnSetupStop = gtk_button_new_from_stock ("gtk-stop"); | |
275 | + gtk_widget_show (btnSetupStop); | |
276 | + gtk_fixed_put (GTK_FIXED (fixed2), btnSetupStop, 360, 368); | |
277 | + gtk_widget_set_size_request (btnSetupStop, 109, 32); | |
278 | + gtk_widget_set_sensitive (btnSetupStop, FALSE); | |
279 | + | |
244 | 280 | g_signal_connect ((gpointer) BtnOrgKnoppixSelectInHDD, "clicked", |
245 | 281 | G_CALLBACK (on_BtnOrgKnoppixSelectInHDD_clicked), |
246 | 282 | NULL); |
283 | + g_signal_connect ((gpointer) BtnKNOPPIXSourceCancel, "clicked", | |
284 | + G_CALLBACK (on_BtnKNOPPIXSourceCancel_clicked), | |
285 | + NULL); | |
247 | 286 | g_signal_connect ((gpointer) BtnKNOPPIXSourceOK, "clicked", |
248 | 287 | G_CALLBACK (on_BtnKNOPPIXSourceOK_clicked), |
249 | 288 | NULL); |
250 | - g_signal_connect ((gpointer) BtnKNOPPIXSourceCancel, "clicked", | |
251 | - G_CALLBACK (on_BtnKNOPPIXSourceCancel_clicked), | |
289 | + g_signal_connect ((gpointer) btnSetupStop, "clicked", | |
290 | + G_CALLBACK (on_btnSetupStop_clicked), | |
252 | 291 | NULL); |
253 | 292 | |
254 | 293 | /* Store pointers to all widgets, for use by lookup_widget(). */ |
255 | 294 | GLADE_HOOKUP_OBJECT_NO_REF (SetupWindow, SetupWindow, "SetupWindow"); |
256 | 295 | GLADE_HOOKUP_OBJECT (SetupWindow, fixed2, "fixed2"); |
257 | - GLADE_HOOKUP_OBJECT (SetupWindow, lblKnoppixSetupPath, "lblKnoppixSetupPath"); | |
296 | + GLADE_HOOKUP_OBJECT (SetupWindow, RbSelectKNOPPIXSource1, "RbSelectKNOPPIXSource1"); | |
297 | + GLADE_HOOKUP_OBJECT (SetupWindow, cbxSourceFileList, "cbxSourceFileList"); | |
258 | 298 | GLADE_HOOKUP_OBJECT (SetupWindow, RbSelectKNOPPIXSource2, "RbSelectKNOPPIXSource2"); |
259 | - GLADE_HOOKUP_OBJECT (SetupWindow, RbSelectKNOPPIXSource1, "RbSelectKNOPPIXSource1"); | |
260 | 299 | GLADE_HOOKUP_OBJECT (SetupWindow, BtnOrgKnoppixSelectInHDD, "BtnOrgKnoppixSelectInHDD"); |
300 | + GLADE_HOOKUP_OBJECT (SetupWindow, label9, "label9"); | |
301 | + GLADE_HOOKUP_OBJECT (SetupWindow, label10, "label10"); | |
302 | + GLADE_HOOKUP_OBJECT (SetupWindow, BtnKNOPPIXSourceCancel, "BtnKNOPPIXSourceCancel"); | |
303 | + GLADE_HOOKUP_OBJECT (SetupWindow, BtnKNOPPIXSourceOK, "BtnKNOPPIXSourceOK"); | |
304 | + GLADE_HOOKUP_OBJECT (SetupWindow, txtSetupLog, "txtSetupLog"); | |
305 | + GLADE_HOOKUP_OBJECT (SetupWindow, lblKnoppixSetupPath, "lblKnoppixSetupPath"); | |
261 | 306 | GLADE_HOOKUP_OBJECT (SetupWindow, chkSourceFileDelete, "chkSourceFileDelete"); |
262 | - GLADE_HOOKUP_OBJECT (SetupWindow, BtnKNOPPIXSourceOK, "BtnKNOPPIXSourceOK"); | |
263 | - GLADE_HOOKUP_OBJECT (SetupWindow, BtnKNOPPIXSourceCancel, "BtnKNOPPIXSourceCancel"); | |
264 | - GLADE_HOOKUP_OBJECT (SetupWindow, cbxSourceFileList, "cbxSourceFileList"); | |
307 | + GLADE_HOOKUP_OBJECT (SetupWindow, lbSetupStatus, "lbSetupStatus"); | |
308 | + GLADE_HOOKUP_OBJECT (SetupWindow, btnSetupStop, "btnSetupStop"); | |
265 | 309 | |
266 | 310 | return SetupWindow; |
267 | 311 | } |
@@ -394,3 +438,49 @@ | ||
394 | 438 | return MakeImageWindow; |
395 | 439 | } |
396 | 440 | |
441 | +GtkWidget* | |
442 | +create_StatusWindow (void) | |
443 | +{ | |
444 | + GtkWidget *StatusWindow; | |
445 | + GtkWidget *fixed5; | |
446 | + GtkWidget *TxtLogMessage; | |
447 | + GtkWidget *label8; | |
448 | + GtkWidget *button1; | |
449 | + | |
450 | + StatusWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL); | |
451 | + gtk_window_set_title (GTK_WINDOW (StatusWindow), _("\347\212\266\346\263\201")); | |
452 | + gtk_window_set_position (GTK_WINDOW (StatusWindow), GTK_WIN_POS_CENTER); | |
453 | + gtk_window_set_modal (GTK_WINDOW (StatusWindow), TRUE); | |
454 | + gtk_window_set_type_hint (GTK_WINDOW (StatusWindow), GDK_WINDOW_TYPE_HINT_DIALOG); | |
455 | + | |
456 | + fixed5 = gtk_fixed_new (); | |
457 | + gtk_widget_show (fixed5); | |
458 | + gtk_container_add (GTK_CONTAINER (StatusWindow), fixed5); | |
459 | + | |
460 | + TxtLogMessage = gtk_text_view_new (); | |
461 | + gtk_widget_show (TxtLogMessage); | |
462 | + gtk_fixed_put (GTK_FIXED (fixed5), TxtLogMessage, 24, 48); | |
463 | + gtk_widget_set_size_request (TxtLogMessage, 344, 72); | |
464 | + gtk_text_view_set_editable (GTK_TEXT_VIEW (TxtLogMessage), FALSE); | |
465 | + | |
466 | + label8 = gtk_label_new (_("\351\200\262\350\241\214\347\212\266\346\263\201")); | |
467 | + gtk_widget_show (label8); | |
468 | + gtk_fixed_put (GTK_FIXED (fixed5), label8, 24, 24); | |
469 | + gtk_widget_set_size_request (label8, 112, 16); | |
470 | + gtk_misc_set_alignment (GTK_MISC (label8), 0, 0.5); | |
471 | + | |
472 | + button1 = gtk_button_new_from_stock ("gtk-stop"); | |
473 | + gtk_widget_show (button1); | |
474 | + gtk_fixed_put (GTK_FIXED (fixed5), button1, 128, 128); | |
475 | + gtk_widget_set_size_request (button1, 120, 40); | |
476 | + | |
477 | + /* Store pointers to all widgets, for use by lookup_widget(). */ | |
478 | + GLADE_HOOKUP_OBJECT_NO_REF (StatusWindow, StatusWindow, "StatusWindow"); | |
479 | + GLADE_HOOKUP_OBJECT (StatusWindow, fixed5, "fixed5"); | |
480 | + GLADE_HOOKUP_OBJECT (StatusWindow, TxtLogMessage, "TxtLogMessage"); | |
481 | + GLADE_HOOKUP_OBJECT (StatusWindow, label8, "label8"); | |
482 | + GLADE_HOOKUP_OBJECT (StatusWindow, button1, "button1"); | |
483 | + | |
484 | + return StatusWindow; | |
485 | +} | |
486 | + |
@@ -5,7 +5,10 @@ | ||
5 | 5 | #include "swap.h" |
6 | 6 | |
7 | 7 | |
8 | +gboolean flagSetupProgressStop; | |
9 | +int flagSetupProgressScriptPID; | |
8 | 10 | |
11 | + | |
9 | 12 | GtkWidget *BaseWindow; |
10 | 13 | GtkWidget *SetupWindow; |
11 | 14 | GtkWidget *CustomizeWindow; |
@@ -6,3 +6,4 @@ | ||
6 | 6 | GtkWidget* create_SetupWindow (void); |
7 | 7 | GtkWidget* create_CustomizeWindow (void); |
8 | 8 | GtkWidget* create_MakeImageWindow (void); |
9 | +GtkWidget* create_StatusWindow (void); |
@@ -8,6 +8,9 @@ | ||
8 | 8 | extern GtkWidget *CustomizeWindow; |
9 | 9 | extern GtkWidget *MakeImageWindow; |
10 | 10 | |
11 | +extern gboolean flagSetupProgressStop; | |
12 | +extern int flagSetupProgressScriptPID; | |
13 | + | |
11 | 14 | extern gchar chProjectFolderPath[512]; |
12 | 15 | extern gchar chSourceFilePath[512]; |
13 | 16 |
@@ -10,6 +10,7 @@ | ||
10 | 10 | #include <fcntl.h> |
11 | 11 | #include <errno.h> |
12 | 12 | #include <limits.h> |
13 | +#include <signal.h> | |
13 | 14 | |
14 | 15 | #include "callbacks.h" |
15 | 16 | #include "interface.h" |
@@ -135,11 +136,15 @@ | ||
135 | 136 | on_BtnKNOPPIXSourceOK_clicked (GtkButton *button, |
136 | 137 | gpointer user_data) |
137 | 138 | { |
138 | - int pid,fifo,readed; | |
139 | + int c,i,pid,fifo,readed; | |
139 | 140 | gchar *url=NULL,*fname=NULL; |
140 | - gchar pipename[256],msg[512],procid[128]; | |
141 | + gchar pipename[256],*p,msg[256],msg2[128],procid[128]; | |
141 | 142 | gboolean delete; |
142 | 143 | GtkWidget *rb1; |
144 | + GtkTextView *tw; | |
145 | + GtkTextIter itr; | |
146 | + GtkTextBuffer *tb; | |
147 | + GdkRectangle rg={0,0,400,100}; | |
143 | 148 | GtkComboBox *cbx; |
144 | 149 | GtkLabel *lbl; |
145 | 150 | GdkCursor *cursor; |
@@ -159,6 +164,11 @@ | ||
159 | 164 | } |
160 | 165 | } |
161 | 166 | |
167 | + //lookup log widget | |
168 | + tw=(GtkTextView*)lookup_widget(GTK_WIDGET(button),"txtSetupLog"); | |
169 | + tb=gtk_text_view_get_buffer(tw); | |
170 | + gtk_text_buffer_get_end_iter(tb,&itr); | |
171 | + | |
162 | 172 | //which select |
163 | 173 | rb1=lookup_widget(GTK_WIDGET(button),"RbSelectKNOPPIXSource1"); |
164 | 174 |
@@ -174,7 +184,30 @@ | ||
174 | 184 | ore_makeWgetShellScript( |
175 | 185 | (const gchar*)chProjectFolderPath, |
176 | 186 | url,pipename,fname); |
177 | - | |
187 | + | |
188 | + flagSetupProgressScriptPID=0; | |
189 | + | |
190 | + //enable and unenable | |
191 | +#define SET_SENCITIVE(x,y) gtk_widget_set_sensitive( \ | |
192 | + lookup_widget(GTK_WIDGET(button),x),y) | |
193 | + SET_SENCITIVE("RbSelectKNOPPIXSource1",FALSE); | |
194 | + SET_SENCITIVE("RbSelectKNOPPIXSource2",FALSE); | |
195 | + SET_SENCITIVE("cbxSourceFileList",FALSE); | |
196 | + SET_SENCITIVE("BtnOrgKnoppixSelectInHDD",FALSE); | |
197 | + SET_SENCITIVE("label9",FALSE); | |
198 | + SET_SENCITIVE("label10",FALSE); | |
199 | + SET_SENCITIVE("BtnKNOPPIXSourceCancel",FALSE); | |
200 | + SET_SENCITIVE("BtnKNOPPIXSourceOK",FALSE); | |
201 | + SET_SENCITIVE("lblKnoppixSetupPath",FALSE); | |
202 | + SET_SENCITIVE("chkSourceFileDelete",FALSE); | |
203 | + | |
204 | + SET_SENCITIVE("lbSetupStatus",TRUE); | |
205 | + SET_SENCITIVE("txtSetupLog",TRUE); | |
206 | + SET_SENCITIVE("btnSetupStop",TRUE); | |
207 | + gtk_main_iteration(); | |
208 | +#undef SET_SENCITIVE | |
209 | + | |
210 | + | |
178 | 211 | //process fork |
179 | 212 | if( (pid=fork()) < 0) { goto pos1; } |
180 | 213 | if(pid==0){//child |
@@ -195,17 +228,57 @@ | ||
195 | 228 | goto pos1; |
196 | 229 | } |
197 | 230 | |
198 | - do{ | |
199 | - memset(msg,'\0',sizeof(msg)); | |
200 | - readed=read(fifo,msg,511); | |
201 | - if(readed>0) printf("msg:%s\n",msg); | |
231 | + memset(msg,'\0',sizeof(msg)); | |
232 | + p=msg; | |
233 | + c=0; | |
234 | + //stop flag | |
235 | + flagSetupProgressStop=FALSE; | |
202 | 236 | |
237 | + while(!flagSetupProgressStop){ | |
238 | + memset(msg2,'\0',sizeof(msg2)); | |
239 | + readed=read(fifo,msg2,sizeof(msg2)); | |
240 | + if(readed>0){ | |
241 | + for(i=0;i<readed;i++){ | |
242 | + *p=msg2[i]; | |
243 | + if(*p=='\n'){ | |
244 | + p++; | |
245 | + *p='\0'; | |
246 | + gtk_text_buffer_insert(tb,&itr,msg,strlen(msg)); | |
247 | + gtk_text_view_scroll_to_iter(tw,&itr,0.0,FALSE,0,0); | |
248 | + gtk_widget_draw(GTK_WIDGET(tw),&rg); | |
249 | + memset(msg,'\0',sizeof(msg)); | |
250 | + p=msg; | |
251 | + } | |
252 | + else{ | |
253 | + p++; | |
254 | + } | |
255 | + } | |
256 | + //gtk_text_buffer_set_text(tb,msg,-1); | |
257 | + /* | |
258 | + gtk_text_buffer_insert(tb,&itr,msg,readed); | |
259 | + gtk_text_view_scroll_to_iter(tw,&itr,0.3,FALSE,0,0); | |
260 | + */ | |
261 | + } | |
203 | 262 | //stack event pending? |
204 | - if(gtk_events_pending()) gtk_main_iteration(); | |
263 | + if(c > 10){ | |
264 | + if(gtk_events_pending()){ | |
265 | + gtk_main_iteration(); | |
266 | + } | |
267 | + c=0; | |
268 | + } | |
269 | + c++; | |
270 | + /// | |
271 | + if(!g_file_test(procid,G_FILE_TEST_EXISTS)){ | |
272 | + break; | |
273 | + } | |
274 | + } | |
205 | 275 | |
206 | - }while(g_file_test(procid,G_FILE_TEST_EXISTS)); | |
207 | - | |
208 | - printf("quit read pipe\n"); | |
276 | + if(g_file_test(procid,G_FILE_TEST_EXISTS)){ | |
277 | + printf("exist %d\n",pid); | |
278 | + kill(pid,SIGTERM); | |
279 | + //printf("exist %d\n",flagSetupProgressScriptPID); | |
280 | + //kill(flagSetupProgressScriptPID,SIGKILL); | |
281 | + } | |
209 | 282 | wait(NULL); |
210 | 283 | } |
211 | 284 | close(fifo); |
@@ -259,13 +332,39 @@ | ||
259 | 332 | } |
260 | 333 | |
261 | 334 | pos1: |
262 | - if(url!=NULL) g_free(url); | |
263 | - if(fname!=NULL) g_free(fname); | |
335 | + if(url!=NULL) g_free(url); | |
336 | + if(fname!=NULL) g_free(fname); | |
337 | + | |
338 | +#define SET_SENCITIVE(x,y) gtk_widget_set_sensitive( \ | |
339 | + lookup_widget(GTK_WIDGET(button),x),y) | |
340 | + SET_SENCITIVE("RbSelectKNOPPIXSource1",TRUE); | |
341 | + SET_SENCITIVE("RbSelectKNOPPIXSource2",TRUE); | |
342 | + SET_SENCITIVE("cbxSourceFileList",TRUE); | |
343 | + SET_SENCITIVE("BtnOrgKnoppixSelectInHDD",TRUE); | |
344 | + SET_SENCITIVE("label9",TRUE); | |
345 | + SET_SENCITIVE("label10",TRUE); | |
346 | + SET_SENCITIVE("BtnKNOPPIXSourceCancel",TRUE); | |
347 | + SET_SENCITIVE("BtnKNOPPIXSourceOK",TRUE); | |
348 | + SET_SENCITIVE("lblKnoppixSetupPath",TRUE); | |
349 | + SET_SENCITIVE("chkSourceFileDelete",TRUE); | |
350 | + | |
351 | + SET_SENCITIVE("lbSetupStatus",FALSE); | |
352 | + SET_SENCITIVE("txtSetupLog",FALSE); | |
353 | + SET_SENCITIVE("btnSetupStop",FALSE); | |
354 | + gtk_main_iteration(); | |
355 | +#undef SET_SENCITIVE | |
264 | 356 | |
265 | 357 | gdk_cursor_unref (cursor); |
266 | - gtk_widget_destroy(SetupWindow); | |
358 | + //gtk_widget_destroy(SetupWindow); | |
267 | 359 | } |
268 | 360 | /////////////////////////////////////////////////////////////////////////// |
361 | +void | |
362 | +on_btnSetupStop_clicked (GtkButton *button, | |
363 | + gpointer user_data) | |
364 | +{ | |
365 | + flagSetupProgressStop=TRUE; | |
366 | +} | |
367 | +/////////////////////////////////////////////////////////////////////////// | |
269 | 368 | // cancel button |
270 | 369 | // belong: SetupWindow |
271 | 370 | void |
@@ -358,3 +457,5 @@ | ||
358 | 457 | |
359 | 458 | |
360 | 459 | |
460 | + | |
461 | + |
@@ -60,3 +60,7 @@ | ||
60 | 60 | void |
61 | 61 | on_btnCloseCustomizeWindow_clicked (GtkButton *button, |
62 | 62 | gpointer user_data); |
63 | + | |
64 | +void | |
65 | +on_btnSetupStop_clicked (GtkButton *button, | |
66 | + gpointer user_data); |