• R/O
  • SSH
  • HTTPS

oreknoppix: コミット


コミットメタ情報

リビジョン4 (tree)
日時2007-01-18 01:53:53
作者tnishiki

ログメッセージ

(メッセージはありません)

変更サマリ

差分

--- src/interface.c (revision 3)
+++ src/interface.c (revision 4)
@@ -174,15 +174,20 @@
174174 {
175175 GtkWidget *SetupWindow;
176176 GtkWidget *fixed2;
177- GtkWidget *lblKnoppixSetupPath;
177+ GtkWidget *RbSelectKNOPPIXSource1;
178+ GSList *RbSelectKNOPPIXSource1_group = NULL;
179+ GtkWidget *cbxSourceFileList;
178180 GtkWidget *RbSelectKNOPPIXSource2;
179- GSList *RbSelectKNOPPIXSource2_group = NULL;
180- GtkWidget *RbSelectKNOPPIXSource1;
181181 GtkWidget *BtnOrgKnoppixSelectInHDD;
182+ GtkWidget *label9;
183+ GtkWidget *label10;
184+ GtkWidget *BtnKNOPPIXSourceCancel;
185+ GtkWidget *BtnKNOPPIXSourceOK;
186+ GtkWidget *txtSetupLog;
187+ GtkWidget *lblKnoppixSetupPath;
182188 GtkWidget *chkSourceFileDelete;
183- GtkWidget *BtnKNOPPIXSourceOK;
184- GtkWidget *BtnKNOPPIXSourceCancel;
185- GtkWidget *cbxSourceFileList;
189+ GtkWidget *lbSetupStatus;
190+ GtkWidget *btnSetupStop;
186191
187192 SetupWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);
188193 gtk_window_set_title (GTK_WINDOW (SetupWindow), _("\345\205\203KNOPPIX\343\201\256\346\272\226\345\202\231"));
@@ -190,78 +195,117 @@
190195 fixed2 = gtk_fixed_new ();
191196 gtk_widget_show (fixed2);
192197 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);
194199
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-
210200 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"));
211201 gtk_widget_show (RbSelectKNOPPIXSource1);
212202 gtk_fixed_put (GTK_FIXED (fixed2), RbSelectKNOPPIXSource1, 32, 8);
213203 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));
216206 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (RbSelectKNOPPIXSource1), TRUE);
217207
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+
218221 BtnOrgKnoppixSelectInHDD = gtk_button_new_from_stock ("gtk-open");
219222 gtk_widget_show (BtnOrgKnoppixSelectInHDD);
220- gtk_fixed_put (GTK_FIXED (fixed2), BtnOrgKnoppixSelectInHDD, 64, 176);
223+ gtk_fixed_put (GTK_FIXED (fixed2), BtnOrgKnoppixSelectInHDD, 344, 104);
221224 gtk_widget_set_size_request (BtnOrgKnoppixSelectInHDD, 112, 32);
222225
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);
227230
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);
232235
233236 BtnKNOPPIXSourceCancel = gtk_button_new_from_stock ("gtk-cancel");
234237 gtk_widget_show (BtnKNOPPIXSourceCancel);
235- gtk_fixed_put (GTK_FIXED (fixed2), BtnKNOPPIXSourceCancel, 312, 256);
238+ gtk_fixed_put (GTK_FIXED (fixed2), BtnKNOPPIXSourceCancel, 240, 192);
236239 gtk_widget_set_size_request (BtnKNOPPIXSourceCancel, 100, 32);
237240
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);
243245
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+
244280 g_signal_connect ((gpointer) BtnOrgKnoppixSelectInHDD, "clicked",
245281 G_CALLBACK (on_BtnOrgKnoppixSelectInHDD_clicked),
246282 NULL);
283+ g_signal_connect ((gpointer) BtnKNOPPIXSourceCancel, "clicked",
284+ G_CALLBACK (on_BtnKNOPPIXSourceCancel_clicked),
285+ NULL);
247286 g_signal_connect ((gpointer) BtnKNOPPIXSourceOK, "clicked",
248287 G_CALLBACK (on_BtnKNOPPIXSourceOK_clicked),
249288 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),
252291 NULL);
253292
254293 /* Store pointers to all widgets, for use by lookup_widget(). */
255294 GLADE_HOOKUP_OBJECT_NO_REF (SetupWindow, SetupWindow, "SetupWindow");
256295 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");
258298 GLADE_HOOKUP_OBJECT (SetupWindow, RbSelectKNOPPIXSource2, "RbSelectKNOPPIXSource2");
259- GLADE_HOOKUP_OBJECT (SetupWindow, RbSelectKNOPPIXSource1, "RbSelectKNOPPIXSource1");
260299 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");
261306 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");
265309
266310 return SetupWindow;
267311 }
@@ -394,3 +438,49 @@
394438 return MakeImageWindow;
395439 }
396440
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+
--- src/global.c (revision 3)
+++ src/global.c (revision 4)
@@ -5,7 +5,10 @@
55 #include "swap.h"
66
77
8+gboolean flagSetupProgressStop;
9+int flagSetupProgressScriptPID;
810
11+
912 GtkWidget *BaseWindow;
1013 GtkWidget *SetupWindow;
1114 GtkWidget *CustomizeWindow;
--- src/interface.h (revision 3)
+++ src/interface.h (revision 4)
@@ -6,3 +6,4 @@
66 GtkWidget* create_SetupWindow (void);
77 GtkWidget* create_CustomizeWindow (void);
88 GtkWidget* create_MakeImageWindow (void);
9+GtkWidget* create_StatusWindow (void);
--- src/global.h (revision 3)
+++ src/global.h (revision 4)
@@ -8,6 +8,9 @@
88 extern GtkWidget *CustomizeWindow;
99 extern GtkWidget *MakeImageWindow;
1010
11+extern gboolean flagSetupProgressStop;
12+extern int flagSetupProgressScriptPID;
13+
1114 extern gchar chProjectFolderPath[512];
1215 extern gchar chSourceFilePath[512];
1316
--- src/callbacks.c (revision 3)
+++ src/callbacks.c (revision 4)
@@ -10,6 +10,7 @@
1010 #include <fcntl.h>
1111 #include <errno.h>
1212 #include <limits.h>
13+#include <signal.h>
1314
1415 #include "callbacks.h"
1516 #include "interface.h"
@@ -135,11 +136,15 @@
135136 on_BtnKNOPPIXSourceOK_clicked (GtkButton *button,
136137 gpointer user_data)
137138 {
138- int pid,fifo,readed;
139+ int c,i,pid,fifo,readed;
139140 gchar *url=NULL,*fname=NULL;
140- gchar pipename[256],msg[512],procid[128];
141+ gchar pipename[256],*p,msg[256],msg2[128],procid[128];
141142 gboolean delete;
142143 GtkWidget *rb1;
144+ GtkTextView *tw;
145+ GtkTextIter itr;
146+ GtkTextBuffer *tb;
147+ GdkRectangle rg={0,0,400,100};
143148 GtkComboBox *cbx;
144149 GtkLabel *lbl;
145150 GdkCursor *cursor;
@@ -159,6 +164,11 @@
159164 }
160165 }
161166
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+
162172 //which select
163173 rb1=lookup_widget(GTK_WIDGET(button),"RbSelectKNOPPIXSource1");
164174
@@ -174,7 +184,30 @@
174184 ore_makeWgetShellScript(
175185 (const gchar*)chProjectFolderPath,
176186 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+
178211 //process fork
179212 if( (pid=fork()) < 0) { goto pos1; }
180213 if(pid==0){//child
@@ -195,17 +228,57 @@
195228 goto pos1;
196229 }
197230
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;
202236
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+ }
203262 //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+ }
205275
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+ }
209282 wait(NULL);
210283 }
211284 close(fifo);
@@ -259,13 +332,39 @@
259332 }
260333
261334 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
264356
265357 gdk_cursor_unref (cursor);
266- gtk_widget_destroy(SetupWindow);
358+ //gtk_widget_destroy(SetupWindow);
267359 }
268360 ///////////////////////////////////////////////////////////////////////////
361+void
362+on_btnSetupStop_clicked (GtkButton *button,
363+ gpointer user_data)
364+{
365+ flagSetupProgressStop=TRUE;
366+}
367+///////////////////////////////////////////////////////////////////////////
269368 // cancel button
270369 // belong: SetupWindow
271370 void
@@ -358,3 +457,5 @@
358457
359458
360459
460+
461+
--- src/callbacks.h (revision 3)
+++ src/callbacks.h (revision 4)
@@ -60,3 +60,7 @@
6060 void
6161 on_btnCloseCustomizeWindow_clicked (GtkButton *button,
6262 gpointer user_data);
63+
64+void
65+on_btnSetupStop_clicked (GtkButton *button,
66+ gpointer user_data);
旧リポジトリブラウザで表示