]> Creatis software - bbtk.git/commitdiff
*** empty log message ***
authorguigues <guigues>
Tue, 25 Mar 2008 10:31:18 +0000 (10:31 +0000)
committerguigues <guigues>
Tue, 25 Mar 2008 10:31:18 +0000 (10:31 +0000)
kernel/cmake/BBTKCreatePackageBBdoc.cmake
kernel/src/bbtkWxGUIScriptingInterface.cxx
kernel/src/bbtkWxGUIScriptingInterface.h
kernel/src/bbtkWxGUITextEditor.cxx
kernel/src/bbtkWxGUITextEditor.h
kernel/src/icons/cc_save_as.xpm [new file with mode: 0644]
kernel/src/icons/cc_stop.xpm [new file with mode: 0644]

index bd089db2aa18eca7e01aa5e6eae80685cdef54d5..b220f47e71e62fe75021499e2b7e73418be9f6fa 100644 (file)
@@ -32,7 +32,7 @@ MACRO(BBTK_CREATE_PACKAGE_BBDOC PACKAGE_NAME)
     FILE(TO_NATIVE_PATH ${BBTK_BIN_PATH}/bb${BBTK_PACKAGE_NAME}.dll  pathCommand2 )
     set(command1 cd "${BBTK_BIN_PATH}/../bbs/") 
     set(command2 copy ${pathCommand2} . )
-    set(command3 ${BBTK_BBI} -n ${OUTPUT_FILE}) 
+    set(command3 ${BBTK_BBI} -N ${OUTPUT_FILE}) 
     set(command4 del bb${BBTK_PACKAGE_NAME}.dll)
     
     ADD_CUSTOM_COMMAND(
@@ -46,7 +46,7 @@ MACRO(BBTK_CREATE_PACKAGE_BBDOC PACKAGE_NAME)
     ADD_CUSTOM_COMMAND(
       OUTPUT ${DOC_OUTPUT}
       COMMAND 
-      cd ${BBTK_BIN_PATH} && ${BBTK_BBI} -n ${OUTPUT_FILE}
+      cd ${BBTK_BIN_PATH} && ${BBTK_BBI} -N ${OUTPUT_FILE}
       DEPENDS bb${PACKAGE_NAME} 
       )
   ENDIF(WIN32)
index 8654ed2ce0acfefb380a8ebbe2871b6ca026034d..a1d274df8542aba28916fae0ea479290d022067d 100644 (file)
@@ -3,8 +3,8 @@
   Program:   bbtk
   Module:    $RCSfile: bbtkWxGUIScriptingInterface.cxx,v $
   Language:  C++
-  Date:      $Date: 2008/03/21 14:59:39 $
-  Version:   $Revision: 1.2 $
+  Date:      $Date: 2008/03/25 10:31:18 $
+  Version:   $Revision: 1.3 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -53,7 +53,12 @@ namespace bbtk
       ID_Menu_CreateBlackBox,
       ID_Menu_ShowImageGraph,
       ID_Menu_CreateIndex,
-      ID_Button_Run
+      ID_Menu_Windows_Files,
+      ID_Menu_Windows_Help,
+      ID_Menu_Windows_Messages,
+      ID_Menu_Windows_Command,
+      ID_Menu_Windows_Save
+      //      ID_Button_Run
     };
     
   
@@ -84,10 +89,23 @@ namespace bbtk
     menuTools->Append( ID_Menu_ShowImageGraph, _T("&Show last image graph") );
     menuTools->Append( ID_Menu_CreateIndex, _T("&Generate index") );
     
+    wxMenu *menuWindows = new wxMenu;
+    menuWindows->AppendCheckItem(ID_Menu_Windows_Files,
+                                _T("Show 'files' panel") )->Check();
+    menuWindows->AppendCheckItem(ID_Menu_Windows_Help,
+                                _T("Show 'help' panel") )->Check();
+    menuWindows->AppendCheckItem(ID_Menu_Windows_Messages,
+                                _T("Show 'messages' panel") )->Check();
+    menuWindows->AppendCheckItem(ID_Menu_Windows_Command,
+                                _T("Show 'command' panel") )->Check();
     
+    menuWindows->AppendSeparator();
+    menuWindows->Append ( ID_Menu_Windows_Save, _T("Save interface configuration"));
+
     wxMenuBar *menuBar = new wxMenuBar;
     menuBar->Append( menuFile, _T("&File") );
     menuBar->Append( menuTools, _T("&Tools") );
+    menuBar->Append( menuWindows, _T("&Windows") );
     menuBar->Append( menuAbout, _T("About") );
     
     SetMenuBar( menuBar );
@@ -125,6 +143,7 @@ namespace bbtk
                  .MinimizeButton(true)
                  .MaximizeButton(true)
                  .Center()
+                 .MinSize(wxSize(100,100))
                  );     
     m_mgr.AddPane(mWxGUIHtmlBrowser,
                  wxAuiPaneInfo().Name(wxT("browser_content"))
@@ -132,6 +151,7 @@ namespace bbtk
                  .MinimizeButton(true)
                  .MaximizeButton(true)
                  .Right()
+                 .MinSize(wxSize(100,100))
                  );
     m_mgr.AddPane(mWxGUIOutputMessages,
                  wxAuiPaneInfo().Name(wxT("messages_content"))
@@ -139,6 +159,7 @@ namespace bbtk
                  .MinimizeButton(true)
                  .MaximizeButton(true)
                  .Bottom()
+                 .MinSize(wxSize(100,100))
                  );
     m_mgr.AddPane(mWxGUICommand,
                  wxAuiPaneInfo().Name(wxT("command_content"))
@@ -147,7 +168,8 @@ namespace bbtk
                  .MaximizeButton(true)
                  .Bottom()
                  .Position(1)
-);     
+                 .MinSize(wxSize(100,100))
+                 );     
     //    m_mgr.AddPane(mwxButtonRun,
     //           wxAuiPaneInfo().Name(wxT("button_run_content")));     
 
@@ -207,9 +229,6 @@ namespace bbtk
   //================================================================
   void WxGUIScriptingInterface::WxGUITextEditorRun()
   {
-    //    wxString per = m_mgr.SavePerspective();
-    //    std::cout << per<< std::endl;
-
     //    wxString temp = mWxGUIHtmlBrowser->GetCurrentPage();
     std::stringstream* buf = new std::stringstream;
     (*buf) << mWxGUITextEditor->GetCurrentPage()->GetText();
@@ -400,6 +419,66 @@ printf("EED WxGUIScriptingInterface::OnMenuCreatePackage 06 \n");
   }
   //================================================================  
 
+  void WxGUIScriptingInterface::OnMenuWindowsCheck( wxCommandEvent& event, 
+                                                   wxWindow* w)
+  {
+    bool checked = event.IsChecked();
+    bool shown = m_mgr.GetPane(w).IsShown();
+    //    std::cout << "checked = "<<checked<<" - shown = "<<shown<<std::endl;
+    if (checked ^ shown) 
+      {
+       m_mgr.GetPane(w).Show(checked);
+       m_mgr.Update();
+      }
+  }
+
+
+  //================================================================  
+  void WxGUIScriptingInterface::OnMenuWindowsFiles(wxCommandEvent& event)
+  {
+    OnMenuWindowsCheck(event,mWxGUITextEditor);
+  }
+  //================================================================  
+
+  //================================================================  
+  void  WxGUIScriptingInterface::OnMenuWindowsHelp(wxCommandEvent& event)
+  {
+    OnMenuWindowsCheck(event,mWxGUIHtmlBrowser);
+  }
+  //================================================================  
+
+  //================================================================  
+  void  WxGUIScriptingInterface::OnMenuWindowsMessages(wxCommandEvent& event)
+  {
+    OnMenuWindowsCheck(event,mWxGUIOutputMessages);
+  }
+  //================================================================  
+
+  //================================================================  
+  void  WxGUIScriptingInterface::OnMenuWindowsCommand(wxCommandEvent& event)
+  {
+    OnMenuWindowsCheck(event,mWxGUICommand);
+  }
+  //================================================================  
+
+  //================================================================  
+  void WxGUIScriptingInterface::OnMenuWindowsSave( wxCommandEvent& WXUNUSED(event))
+  {
+    // TO DO : Save it into ConfigurationFile
+    //    m_mgr.SavePerspective();
+  }
+  //================================================================  
+
+
+  //================================================================  
+  void WxGUIScriptingInterface::OnPaneClose(wxAuiManagerEvent& evt)
+  {
+    std::cout  << "Closing panel '"<<evt.pane->name<<"'"<<std::endl;
+    
+  }
+  //================================================================  
+
+  
   //================================================================  
   BEGIN_EVENT_TABLE(WxGUIScriptingInterface, wxFrame)
     EVT_MENU(ID_Menu_Quit, WxGUIScriptingInterface::OnMenuQuit)
@@ -409,6 +488,11 @@ printf("EED WxGUIScriptingInterface::OnMenuCreatePackage 06 \n");
     EVT_MENU(ID_Menu_CreateBlackBox, WxGUIScriptingInterface::OnMenuCreateBlackBox)
     EVT_MENU(ID_Menu_ShowImageGraph, WxGUIScriptingInterface::OnMenuShowImageGraph)
     EVT_MENU(ID_Menu_CreateIndex, WxGUIScriptingInterface::OnMenuCreateIndex)
+    EVT_MENU(ID_Menu_Windows_Files, WxGUIScriptingInterface::OnMenuWindowsFiles)
+    EVT_MENU(ID_Menu_Windows_Help, WxGUIScriptingInterface::OnMenuWindowsHelp)
+    EVT_MENU(ID_Menu_Windows_Messages, WxGUIScriptingInterface::OnMenuWindowsMessages)
+    EVT_MENU(ID_Menu_Windows_Command, WxGUIScriptingInterface::OnMenuWindowsCommand)
+    EVT_AUI_PANE_CLOSE(WxGUIScriptingInterface::OnPaneClose)
   //    EVT_BUTTON(ID_Button_Run, WxGUIScriptingInterface::OnButtonRun )
     END_EVENT_TABLE()
   //================================================================
index 2f3327cec0cfe20310cbd91649b9aa9251661a45..44c04dcb8340e36380d21444c8b57b14f24841bb 100644 (file)
@@ -3,8 +3,8 @@
   Program:   bbtk
   Module:    $RCSfile: bbtkWxGUIScriptingInterface.h,v $
   Language:  C++
-  Date:      $Date: 2008/03/21 14:59:39 $
-  Version:   $Revision: 1.2 $
+  Date:      $Date: 2008/03/25 10:31:18 $
+  Version:   $Revision: 1.3 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -96,6 +96,15 @@ namespace bbtk
     void OnMenuCreateBlackBox(wxCommandEvent& WXUNUSED(event));
     void OnMenuShowImageGraph(wxCommandEvent& WXUNUSED(event));
     void OnMenuCreateIndex(wxCommandEvent& WXUNUSED(event));
+    void OnMenuWindowsFiles(wxCommandEvent& event);
+    void OnMenuWindowsHelp(wxCommandEvent& event);
+    void OnMenuWindowsMessages(wxCommandEvent& event);
+    void OnMenuWindowsCommand(wxCommandEvent& event);
+    void OnMenuWindowsSave( wxCommandEvent& WXUNUSED(event));
+    void OnMenuWindowsCheck( wxCommandEvent& event, 
+                            wxWindow* w);
+   
+    void OnPaneClose(wxAuiManagerEvent& evt);
    
 
     // void OnButtonRun(wxCommandEvent& WXUNUSED(event));
index e2f7fe46eada0f9f3346205ff88feac0f3089e44..b4f10c49ddc768a76a2b50b180e6a5bc91673f0c 100644 (file)
@@ -3,8 +3,8 @@
   Program:   bbtk
   Module:    $RCSfile: bbtkWxGUITextEditor.cxx,v $
   Language:  C++
-  Date:      $Date: 2008/03/21 14:59:39 $
-  Version:   $Revision: 1.2 $
+  Date:      $Date: 2008/03/25 10:31:18 $
+  Version:   $Revision: 1.3 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -39,7 +39,9 @@
 
 #include "icons/cc_new.xpm"
 #include "icons/cc_open.xpm"
+#include "icons/cc_stop.xpm"
 #include "icons/cc_save.xpm"
+#include "icons/cc_save_as.xpm"
 #include "icons/cc_run.xpm"
 #include "icons/cc_exit.xpm"
 
@@ -245,9 +247,15 @@ namespace bbtk
     wxBitmap bmp_open(cc_open_xpm);
     mwxButtonOpen = new wxBitmapButton( btnsCtrlPanel,ID_ButtonOpen,bmp_open);//,_T("Open")  );
     btnsSizer->Add( mwxButtonOpen );
+    wxBitmap bmp_close(cc_stop_xpm);
+    mwxButtonClose = new wxBitmapButton( btnsCtrlPanel,ID_ButtonClose,bmp_close);//,_T("Open")  );
+    btnsSizer->Add( mwxButtonClose );
     wxBitmap bmp_save(cc_save_xpm);
     mwxButtonSave = new wxBitmapButton( btnsCtrlPanel,ID_ButtonSave,bmp_save);//_T("Save")  );
     btnsSizer->Add( mwxButtonSave );
+    wxBitmap bmp_saveas(cc_save_as_xpm);
+    mwxButtonSaveAs = new wxBitmapButton( btnsCtrlPanel,ID_ButtonSaveAs,bmp_saveas);//_T("Save")  );
+    btnsSizer->Add( mwxButtonSaveAs );
 
     wxBitmap bmp_run(cc_run_xpm);
     mwxButtonRun = new wxBitmapButton( btnsCtrlPanel,ID_ButtonRun,bmp_run);//_T("Run")  );
@@ -352,6 +360,34 @@ namespace bbtk
   }
   //================================================================  
 
+  //================================================================  
+  void WxGUITextEditor::OnButtonClose(wxCommandEvent& event) 
+  { 
+    std::cout << "-------------- CLOSE ---------------"<<std::endl;
+    if (mwxNotebook->GetPageCount()==0) return;
+    if (GetCurrentPage()->IsModified()) 
+      {
+       wxMessageDialog* d = 
+         new wxMessageDialog(this,
+                             _T("Buffer modified. Save it ?"), 
+                             _T("Save buffer"), 
+                             wxYES_NO | wxCANCEL | wxICON_QUESTION);
+       switch (d->ShowModal())
+         {
+         case wxID_CANCEL : 
+           return;
+           break;
+         case wxID_YES : 
+           GetCurrentPage()->Save(mFileNameFilter); 
+           break;
+         case wxID_NO : ;
+         }       
+      } 
+    mwxNotebook->DeletePage(mwxNotebook->GetSelection());
+    FocusOnCurrentPage();
+  } 
+  //================================================================  
+
   //================================================================  
   void WxGUITextEditor::OnButtonSave(wxCommandEvent& event) 
   { 
@@ -367,6 +403,15 @@ namespace bbtk
   }
   //================================================================  
 
+  //================================================================  
+  void WxGUITextEditor::OnButtonSaveAs(wxCommandEvent& event) 
+  { 
+    if (mwxNotebook->GetPageCount()==0) return;  
+    GetCurrentPage()->SetAskFilename(true);
+    Save();
+  } 
+  //================================================================  
+
   //================================================================  
   void WxGUITextEditor::OnPageClose(wxAuiNotebookEvent& evt)
   {
@@ -395,6 +440,7 @@ namespace bbtk
   //================================================================
 
 
+
   /*
   //================================================================  
   void WxGUITextEditor::OnButtonQuit(wxCommandEvent& event) 
@@ -413,7 +459,8 @@ namespace bbtk
   //================================================================  
   void WxGUITextEditor::OnButtonRun(wxCommandEvent& event) 
   { 
-    if (mUser!=0) mUser->WxGUITextEditorRun();
+    if ((mUser!=0) && (mwxNotebook->GetPageCount()>0)) 
+      mUser->WxGUITextEditorRun();
     FocusOnCurrentPage();
   }
 
@@ -526,7 +573,9 @@ namespace bbtk
   //    EVT_CHAR(WxGUITextEditor::OnKeyPress)
     EVT_BUTTON(WxGUITextEditor::ID_ButtonNew, WxGUITextEditor::OnButtonNew)
     EVT_BUTTON(WxGUITextEditor::ID_ButtonOpen, WxGUITextEditor::OnButtonOpen)
+    EVT_BUTTON(WxGUITextEditor::ID_ButtonClose, WxGUITextEditor::OnButtonClose)
     EVT_BUTTON(WxGUITextEditor::ID_ButtonSave, WxGUITextEditor::OnButtonSave)
+    EVT_BUTTON(WxGUITextEditor::ID_ButtonSaveAs, WxGUITextEditor::OnButtonSaveAs)
     EVT_BUTTON(WxGUITextEditor::ID_ButtonRun, WxGUITextEditor::OnButtonRun)
   //    EVT_BUTTON(WxGUITextEditor::ID_ButtonQuit, WxGUITextEditor::OnButtonQuit)
     EVT_AUINOTEBOOK_PAGE_CLOSE(wxID_ANY, WxGUITextEditor::OnPageClose)
index 0f08e15c7b09d2c5aa3ee2bb5e3fce3fa3c06325..cf97f648bbca3d574d6982eef221ad8ad12debe1 100644 (file)
@@ -3,8 +3,8 @@
   Program:   bbtk
   Module:    $RCSfile: bbtkWxGUITextEditor.h,v $
   Language:  C++
-  Date:      $Date: 2008/03/21 14:59:39 $
-  Version:   $Revision: 1.2 $
+  Date:      $Date: 2008/03/25 10:31:18 $
+  Version:   $Revision: 1.3 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -73,6 +73,7 @@ namespace bbtk
     const std::string& GetPageName() const { return mName; }
 
     bool AskFilename() const { return mAskFilename; }
+    void SetAskFilename(bool a) { mAskFilename=a; }
 
     WxTextCtrlGettingKeyEvents* GetTextCtrl() { return mwxInputText; }
 
@@ -115,7 +116,9 @@ namespace bbtk
 
     void OnButtonNew(wxCommandEvent& event);
     void OnButtonOpen(wxCommandEvent& event);
+    void OnButtonClose(wxCommandEvent& event);
     void OnButtonSave(wxCommandEvent& event);
+    void OnButtonSaveAs(wxCommandEvent& event);
     void OnButtonRun(wxCommandEvent& event);
     //    void OnButtonQuit(wxCommandEvent& event);
     void OnPageClose(wxAuiNotebookEvent& evt);
@@ -148,7 +151,9 @@ namespace bbtk
 
     wxButton *  mwxButtonNew; 
     wxButton *  mwxButtonOpen; 
+    wxButton *  mwxButtonClose; 
     wxButton *  mwxButtonSave; 
+    wxButton *  mwxButtonSaveAs; 
     wxButton *  mwxButtonRun; 
     //    wxButton *  mwxButtonQuit; 
     wxStaticText* mwxPosition;
@@ -161,7 +166,9 @@ namespace bbtk
     {
       ID_ButtonNew,
       ID_ButtonOpen,
+      ID_ButtonClose,
       ID_ButtonSave,
+      ID_ButtonSaveAs,
       ID_ButtonRun
       //      ID_ButtonQuit
     };
diff --git a/kernel/src/icons/cc_save_as.xpm b/kernel/src/icons/cc_save_as.xpm
new file mode 100644 (file)
index 0000000..3978476
--- /dev/null
@@ -0,0 +1,302 @@
+/* XPM */
+static char * cc_save_as_xpm[] = {
+"32 32 267 2",
+"      c None",
+".     c #020202",
+"+     c #010101",
+"@     c #000000",
+"#     c #181818",
+"$     c #606060",
+"%     c #777777",
+"&     c #858585",
+"*     c #868686",
+"=     c #878787",
+"-     c #888888",
+";     c #898989",
+">     c #848484",
+",     c #808080",
+"'     c #7F7F7F",
+")     c #7E7E7E",
+"!     c #7A7A7A",
+"~     c #787878",
+"{     c #767676",
+"]     c #717171",
+"^     c #707070",
+"/     c #6E6E6E",
+"(     c #6C6C6C",
+"_     c #545454",
+":     c #3E3E3E",
+"<     c #090909",
+"[     c #2D2D2D",
+"}     c #929292",
+"|     c #C9C9C9",
+"1     c #E9E9E9",
+"2     c #EBEBEB",
+"3     c #ECECEC",
+"4     c #EEEEEE",
+"5     c #EFEFEF",
+"6     c #F0F0F0",
+"7     c #F1F1F1",
+"8     c #EDEDED",
+"9     c #EAEAEA",
+"0     c #E7E7E7",
+"a     c #E5E5E5",
+"b     c #DFDFDF",
+"c     c #A7A7A7",
+"d     c #191919",
+"e     c #393939",
+"f     c #E8E8E8",
+"g     c #E2E2E2",
+"h     c #A3A3A3",
+"i     c #1D1D1D",
+"j     c #424242",
+"k     c #7D7D7D",
+"l     c #CACACA",
+"m     c #E6E6E6",
+"n     c #E3E3E3",
+"o     c #646464",
+"p     c #101010",
+"q     c #747474",
+"r     c #CECECE",
+"s     c #F2F2F2",
+"t     c #F4F4F4",
+"u     c #F3F3F3",
+"v     c #E4E4E4",
+"w     c #AFAFAF",
+"x     c #3C3C3C",
+"y     c #030303",
+"z     c #3F3F3F",
+"A     c #6B6B6B",
+"B     c #D1D1D1",
+"C     c #AEAEAE",
+"D     c #151515",
+"E     c #050505",
+"F     c #D5D5D5",
+"G     c #F5F5F5",
+"H     c #F6F6F6",
+"I     c #A5A5A5",
+"J     c #0D0D0D",
+"K     c #060606",
+"L     c #333333",
+"M     c #5F5F5F",
+"N     c #D8D8D8",
+"O     c #141414",
+"P     c #0B0B0B",
+"Q     c #2F2F2F",
+"R     c #DCDCDC",
+"S     c #DADADA",
+"T     c #BCBCBC",
+"U     c #202020",
+"V     c #2B2B2B",
+"W     c #E0E0E0",
+"X     c #F7F7F7",
+"Y     c #F9F9F9",
+"Z     c #FAFAFA",
+"`     c #FBFBFB",
+" .    c #C7C7C7",
+"..    c #080808",
+"+.    c #161616",
+"@.    c #272727",
+"#.    c #DEDEDE",
+"$.    c #CDCDCD",
+"%.    c #3D3D3D",
+"&.    c #1C1C1C",
+"*.    c #242424",
+"=.    c #7C7C7C",
+"-.    c #D9D9D9",
+";.    c #474747",
+">.    c #0E0E0E",
+",.    c #212121",
+"'.    c #232323",
+").    c #303030",
+"!.    c #484848",
+"~.    c #4A4A4A",
+"{.    c #494949",
+"].    c #4D4D4D",
+"^.    c #4E4E4E",
+"/.    c #4F4F4F",
+"(.    c #525252",
+"_.    c #515151",
+":.    c #4C4C4C",
+"<.    c #4B4B4B",
+"[.    c #464646",
+"}.    c #222222",
+"|.    c #1B1B1B",
+"1.    c #262626",
+"2.    c #252525",
+"3.    c #1E1E1E",
+"4.    c #1A1A1A",
+"5.    c #1F1F1F",
+"6.    c #454545",
+"7.    c #434343",
+"8.    c #414141",
+"9.    c #282828",
+"0.    c #2E2E2E",
+"a.    c #353535",
+"b.    c #959595",
+"c.    c #B4B4B4",
+"d.    c #ACACAC",
+"e.    c #BABABA",
+"f.    c #BDBDBD",
+"g.    c #BFBFBF",
+"h.    c #C1C1C1",
+"i.    c #C2C2C2",
+"j.    c #C4C4C4",
+"k.    c #C5C5C5",
+"l.    c #969696",
+"m.    c #535353",
+"n.    c #292929",
+"o.    c #363636",
+"p.    c #343434",
+"q.    c #B5B5B5",
+"r.    c #B1B1B1",
+"s.    c #656565",
+"t.    c #6A6A6A",
+"u.    c #DDDDDD",
+"v.    c #444444",
+"w.    c #2C2C2C",
+"x.    c #3B3B3B",
+"y.    c #313131",
+"z.    c #9C9C9C",
+"A.    c #B7B7B7",
+"B.    c #D7D7D7",
+"C.    c #BEBEBE",
+"D.    c #464546",
+"E.    c #4A494A",
+"F.    c #4B4C4B",
+"G.    c #403F40",
+"H.    c #383838",
+"I.    c #404040",
+"J.    c #505050",
+"K.    c #D3D3D3",
+"L.    c #DBDBDB",
+"M.    c #E1E1E1",
+"N.    c #515251",
+"O.    c #334733",
+"P.    c #245824",
+"Q.    c #245F24",
+"R.    c #205720",
+"S.    c #2C492C",
+"T.    c #3B3F3B",
+"U.    c #3A3A3A",
+"V.    c #C0C0C0",
+"W.    c #CFCFCF",
+"X.    c #D4D4D4",
+"Y.    c #D6D6D6",
+"Z.    c #CCCCCC",
+"`.    c #B9BBB9",
+" +    c #346334",
+".+    c #359435",
+"++    c #8CD08C",
+"@+    c #ABDFAB",
+"#+    c #A1D9A1",
+"$+    c #5BAF5B",
+"%+    c #1D5E1D",
+"&+    c #171717",
+"*+    c #5E5E5E",
+"=+    c #5C5C5C",
+"-+    c #5B5B5B",
+";+    c #686868",
+">+    c #D0D0D0",
+",+    c #D2D2D2",
+"'+    c #6F956F",
+")+    c #40A540",
+"!+    c #9DE69D",
+"~+    c #B6EFB6",
+"{+    c #B5EEB5",
+"]+    c #AFEEAF",
+"^+    c #6EC56E",
+"/+    c #106210",
+"(+    c #919191",
+"_+    c #C8CEC8",
+":+    c #328932",
+"<+    c #61D361",
+"[+    c #7BE07B",
+"}+    c #79DF79",
+"|+    c #77DE77",
+"1+    c #68D968",
+"2+    c #1D951D",
+"3+    c #5D5D5D",
+"4+    c #9D9D9D",
+"5+    c #B8B8B8",
+"6+    c #B6B6B6",
+"7+    c #B2B2B2",
+"8+    c #A9A9A9",
+"9+    c #A0A0A0",
+"0+    c #979797",
+"a+    c #939393",
+"b+    c #8F8F8F",
+"c+    c #8C8B8C",
+"d+    c #627162",
+"e+    c #1A961A",
+"f+    c #3FD03F",
+"g+    c #42D042",
+"h+    c #37CA37",
+"i+    c #1CBC1C",
+"j+    c #0AB50A",
+"k+    c #02A102",
+"l+    c #005100",
+"m+    c #079407",
+"n+    c #13C313",
+"o+    c #13C113",
+"p+    c #0EBB0E",
+"q+    c #04B304",
+"r+    c #00B000",
+"s+    c #00B200",
+"t+    c #00A300",
+"u+    c #008000",
+"v+    c #01BD01",
+"w+    c #01BE01",
+"x+    c #00BD00",
+"y+    c #00BF00",
+"z+    c #009E00",
+"A+    c #014F01",
+"B+    c #0AAE0A",
+"C+    c #0EC90E",
+"D+    c #0EC80E",
+"E+    c #0CC00C",
+"F+    c #036E03",
+"G+    c #086108",
+"H+    c #1DB21D",
+"I+    c #28CD28",
+"J+    c #2AD12A",
+"K+    c #29CF29",
+"L+    c #22C022",
+"M+    c #0E7C0E",
+"N+    c #084508",
+"O+    c #136F13",
+"P+    c #1A7F1A",
+"Q+    c #167816",
+"R+    c #0B550B",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"        . . . . . . . + @ @ @ @ @ @ @ @ @ @ @ @ @ @             ",
+"      # $ % & * = - ; & > , ' ) ) ) ! ~ { ] ^ / ( _ : <         ",
+"      [ } | 1 2 3 4 5 6 7 6 7 6 6 5 5 8 3 9 0 a b c , d         ",
+"    @ e & | f 1 3 8 4 5 6 6 7 7 6 6 5 4 3 2 1 0 g h ~ i         ",
+"    @ j k l m m 0 f 9 9 2 2 3 3 2 2 9 1 f 0 a n g c o p         ",
+"    + j q r 1 2 8 5 7 s t t t t t u s 6 5 3 9 0 v w x .         ",
+"    y z A B v a 0 f 1 9 2 2 2 2 2 9 9 1 0 m v g g C D @ @       ",
+"    E e o F 1 2 4 6 u t G H H H G t t s 6 4 2 f m I J @ @       ",
+"    K L M N f 2 4 6 s u G H H H G t u s 6 8 9 m b w O @ @       ",
+"    P Q $ R 0 9 8 6 s u G G G G G t u 7 6 8 9 g S T U + y       ",
+"    p V ( W 2 4 s G X Y Z ` ` ` Z Z Y H t 7 2 v b  .[ E ..      ",
+"    +.@.! #.n m 1 2 8 5 5 5 6 6 5 5 4 3 9 v W R N $.%.< J       ",
+"    &.*.=.-.#.n 0 9 3 4 5 6 6 G G t s 6 4 9 m W S $.;.>.O       ",
+"  p ,.'.).!.~.{.].^./././././._ _ (.(._./.^.].:.<.[.}.+.|.      ",
+"  d 1.2.3.&.4.5.6.^.^.^.^.].:.<.<.<.<.<.!.!.7.j 7.8.9.i *.#     ",
+"  '.0.0.1.'.,.a.b.c.d.d.w e.f.g.h.i.j.k. .| l.m._._.x n.0.U     ",
+"  [ o.o.p.V 1.z q.r.s.$ t.i.u.b g a f 9 8 s j.m.~.<.v.o.o.w.    ",
+"  o.z z z x.y.v.q.z.;.v./.A.B.-.R b g a f f C.(.D.E.F.z G.H.    ",
+"  I.{.!.!.!.v.J.A.l.v.8.:.c.K.F N L.#.M.#.K.e.N.O.P.Q.R.S.T.    ",
+"  U._ (._._.J.$ V.} j z {.r.W.B X.Y.Y.B Z.Z.`. +.+++@+#+$+%+    ",
+"  &+z M *+=+-+(  .h s.$ ;+f.>+>+>+>+>+B ,+B '+)+!+~+{+~+]+^+/+  ",
+"    +.7.A ~ =.(+g f R L.#.1 9 1 f f f 0 0 _+:+<+[+}+}+}+|+1+2+  ",
+"        L 6.].3+4+5+6+7+C 8+I 9+z.0+a+b+c+d+e+f+g+g+g+h+i+j+k+l+",
+"                                            m+n+o+o+p+q+r+s+t+l+",
+"                                            u+v+w+w+x+x+x+y+z+  ",
+"                                            A+B+C+D+D+D+C+E+F+  ",
+"                                              G+H+I+J+K+L+M+    ",
+"                                                N+O+P+Q+R+      ",
+"                                                                "};
diff --git a/kernel/src/icons/cc_stop.xpm b/kernel/src/icons/cc_stop.xpm
new file mode 100644 (file)
index 0000000..aa8af9f
--- /dev/null
@@ -0,0 +1,434 @@
+/* XPM */
+static char * cc_stop_xpm[] = {
+"32 32 399 2",
+"      c None",
+".     c #D40505",
+"+     c #EC1F1F",
+"@     c #EE2727",
+"#     c #EE2626",
+"$     c #E71313",
+"%     c #DD0A0A",
+"&     c #F85F5F",
+"*     c #FFB3B3",
+"=     c #FFBABA",
+"-     c #FE9B9B",
+";     c #EF2F2F",
+">     c #E41313",
+",     c #FB7474",
+"'     c #FFC4C4",
+")     c #FFCDCD",
+"!     c #FFCCCC",
+"~     c #FFAEAE",
+"{     c #F44141",
+"]     c #D40404",
+"^     c #E91E1E",
+"/     c #FD8686",
+"(     c #FFC3C3",
+"_     c #FFC5C5",
+":     c #FFC6C6",
+"<     c #FFB6B6",
+"[     c #F85858",
+"}     c #DB0A0A",
+"|     c #EF2B2B",
+"1     c #FE9494",
+"2     c #FFBEBE",
+"3     c #FFC1C1",
+"4     c #FFD6D6",
+"5     c #FFBDBD",
+"6     c #FFCFCF",
+"7     c #FFBFBF",
+"8     c #FFB8B8",
+"9     c #FB6F6F",
+"0     c #E31313",
+"a     c #D40303",
+"b     c #F43B3B",
+"c     c #FF9E9E",
+"d     c #FFB9B9",
+"e     c #FFBCBC",
+"f     c #FFE2E2",
+"g     c #FFFDFD",
+"h     c #FFEDED",
+"i     c #FFB7B7",
+"j     c #FFD3D3",
+"k     c #FFF9F9",
+"l     c #FFF7F7",
+"m     c #FD8080",
+"n     c #EB1F1F",
+"o     c #DD0808",
+"p     c #F74F4F",
+"q     c #FFA3A3",
+"r     c #FFB2B2",
+"s     c #FFE4E4",
+"t     c #FFFEFE",
+"u     c #FFFFFF",
+"v     c #FFF0F0",
+"w     c #FFB0B0",
+"x     c #FFB1B1",
+"y     c #FFD4D4",
+"z     c #FFFAFA",
+"A     c #FE8E8E",
+"B     c #F02D2D",
+"C     c #D10101",
+"D     c #E30909",
+"E     c #FB5F5F",
+"F     c #FFA4A4",
+"G     c #FFABAB",
+"H     c #FDD7D7",
+"I     c #FFF2F2",
+"J     c #FFC0C0",
+"K     c #FFAAAA",
+"L     c #FFADAD",
+"M     c #FFD7D7",
+"N     c #FFFBFB",
+"O     c #FEF6F6",
+"P     c #FEBBBB",
+"Q     c #FFA9A9",
+"R     c #FFACAC",
+"S     c #FF9696",
+"T     c #F53B3B",
+"U     c #D40202",
+"V     c #F42121",
+"W     c #FF9999",
+"X     c #FFA5A5",
+"Y     c #F9B0B0",
+"Z     c #F9E4E4",
+"`     c #FFF4F4",
+" .    c #FFD9D9",
+"..    c #FFFCFC",
+"+.    c #FDFAFA",
+"@.    c #F6CBCB",
+"#.    c #FCA7A7",
+"$.    c #FFA7A7",
+"%.    c #FF8282",
+"&.    c #E70E0E",
+"*.    c #F42323",
+"=.    c #FF9494",
+"-.    c #FF9D9D",
+";.    c #FE9C9C",
+">.    c #F8A6A6",
+",.    c #F8DCDC",
+"'.    c #FFC9C9",
+").    c #FFDDDD",
+"!.    c #FDF7F7",
+"~.    c #F5C2C2",
+"{.    c #FB9F9F",
+"].    c #FF9393",
+"^.    c #FF3D3D",
+"/.    c #ED0202",
+"(.    c #F62121",
+"_.    c #FF8E8E",
+":.    c #F89E9E",
+"<.    c #F6D2D2",
+"[.    c #FEFCFC",
+"}.    c #FCF3F3",
+"|.    c #F4B9B9",
+"1.    c #FC9B9B",
+"2.    c #FF8585",
+"3.    c #FF3535",
+"4.    c #FF0303",
+"5.    c #EF0000",
+"6.    c #F62323",
+"7.    c #FF8A8A",
+"8.    c #FF8F8F",
+"9.    c #FF9090",
+"0.    c #FF9191",
+"a.    c #FF9292",
+"b.    c #F99898",
+"c.    c #F6CACA",
+"d.    c #FEFBFB",
+"e.    c #FBEEEE",
+"f.    c #F4B1B1",
+"g.    c #FC9797",
+"h.    c #FF9797",
+"i.    c #FF6E6E",
+"j.    c #FF2424",
+"k.    c #FF0101",
+"l.    c #F00000",
+"m.    c #B50000",
+"n.    c #F72222",
+"o.    c #FF8484",
+"p.    c #FF8989",
+"q.    c #FF8B8B",
+"r.    c #FF8D8D",
+"s.    c #FA9494",
+"t.    c #F7BEBE",
+"u.    c #FEF9F9",
+"v.    c #FBEAEA",
+"w.    c #F5A8A8",
+"x.    c #FD9595",
+"y.    c #FF8080",
+"z.    c #FF4747",
+"A.    c #FF1919",
+"B.    c #FF0B0B",
+"C.    c #FF0808",
+"D.    c #FF0505",
+"E.    c #F20202",
+"F.    c #B60000",
+"G.    c #F72020",
+"H.    c #FF7E7E",
+"I.    c #FF8383",
+"J.    c #FF8787",
+"K.    c #FCAFAF",
+"L.    c #FEF5F5",
+"M.    c #FCE0E0",
+"N.    c #FE9E9E",
+"O.    c #FF8181",
+"P.    c #FF5353",
+"Q.    c #FF2D2D",
+"R.    c #FF1A1A",
+"S.    c #FF1616",
+"T.    c #FF1212",
+"U.    c #FF0E0E",
+"V.    c #FF0A0A",
+"W.    c #F30606",
+"X.    c #BB0000",
+"Y.    c #F72323",
+"Z.    c #FF7A7A",
+"`.    c #FF8686",
+" +    c #FF8888",
+".+    c #FFDBDB",
+"++    c #FF6969",
+"@+    c #FF3737",
+"#+    c #FF2A2A",
+"$+    c #FF2626",
+"%+    c #FF2222",
+"&+    c #FF1E1E",
+"*+    c #FF1414",
+"=+    c #FF1010",
+"-+    c #F50A0A",
+";+    c #C00000",
+">+    c #F91C1C",
+",+    c #FF5C5C",
+"'+    c #FF6C6C",
+")+    c #FF7575",
+"!+    c #FF7C7C",
+"~+    c #FFF5F5",
+"{+    c #FF5858",
+"]+    c #FF3333",
+"^+    c #FF2F2F",
+"/+    c #FF2B2B",
+"(+    c #FF2020",
+"_+    c #FF1B1B",
+":+    c #FF1515",
+"<+    c #F60F0F",
+"[+    c #C50101",
+"}+    c #F90707",
+"|+    c #FF1111",
+"1+    c #FF1C1C",
+"2+    c #FF2929",
+"3+    c #FF3F3F",
+"4+    c #FF4E4E",
+"5+    c #FFF8F8",
+"6+    c #FEA6A6",
+"7+    c #FECECE",
+"8+    c #FF6767",
+"9+    c #FF3838",
+"0+    c #FF3434",
+"a+    c #FF2E2E",
+"b+    c #FF2828",
+"c+    c #F71414",
+"d+    c #CE0303",
+"e+    c #FB0909",
+"f+    c #FF0F0F",
+"g+    c #FF3131",
+"h+    c #FF9A9A",
+"i+    c #FFF6F6",
+"j+    c #FF4D4D",
+"k+    c #FF5A5A",
+"l+    c #FFE3E3",
+"m+    c #FF7474",
+"n+    c #FF3636",
+"o+    c #F81919",
+"p+    c #C60606",
+"q+    c #F71212",
+"r+    c #FF2121",
+"s+    c #FD9292",
+"t+    c #FF6565",
+"u+    c #FF6363",
+"v+    c #FF5E5E",
+"w+    c #FEE5E5",
+"x+    c #FE6565",
+"y+    c #FF3030",
+"z+    c #F22727",
+"A+    c #A80101",
+"B+    c #CC0C0C",
+"C+    c #F52020",
+"D+    c #FF2727",
+"E+    c #F45151",
+"F+    c #FAD0D0",
+"G+    c #FFECEC",
+"H+    c #FF6464",
+"I+    c #FF6F6F",
+"J+    c #FF7272",
+"K+    c #FEADAD",
+"L+    c #ED9C9C",
+"M+    c #F85050",
+"N+    c #FF3A3A",
+"O+    c #F23737",
+"P+    c #C31313",
+"Q+    c #B70000",
+"R+    c #C80D0D",
+"S+    c #F12D2D",
+"T+    c #FD3939",
+"U+    c #FBC4C4",
+"V+    c #FF7F7F",
+"W+    c #FF7777",
+"X+    c #FE6B6B",
+"Y+    c #FCA3A3",
+"Z+    c #FDF5F5",
+"`+    c #F09191",
+" @    c #F45353",
+".@    c #FE5656",
+"+@    c #FF4F4F",
+"@@    c #EE4242",
+"#@    c #C21111",
+"$@    c #B10000",
+"%@    c #AF0000",
+"&@    c #BD0000",
+"*@    c #C80C0C",
+"=@    c #ED3737",
+"-@    c #FF4343",
+";@    c #FF4444",
+">@    c #FE4A4A",
+",@    c #FB5454",
+"'@    c #FDA0A0",
+")@    c #FF8C8C",
+"!@    c #FC7474",
+"~@    c #F78E8E",
+"{@    c #F28383",
+"]@    c #F86262",
+"^@    c #FF6161",
+"/@    c #FE6060",
+"(@    c #E94747",
+"_@    c #C30E0E",
+":@    c #9C0000",
+"<@    c #AB0000",
+"[@    c #C40000",
+"}@    c #CA0A0A",
+"|@    c #E93C3C",
+"1@    c #FE5555",
+"2@    c #FF5555",
+"3@    c #FE5A5A",
+"4@    c #FF6D6D",
+"5@    c #FF9C9C",
+"6@    c #FF9F9F",
+"7@    c #FFA0A0",
+"8@    c #FB7C7C",
+"9@    c #FB7777",
+"0@    c #FF7D7D",
+"a@    c #FD7474",
+"b@    c #E54848",
+"c@    c #C50A0A",
+"d@    c #BC0000",
+"e@    c #960000",
+"f@    c #A50000",
+"g@    c #C90000",
+"h@    c #CD0606",
+"i@    c #E53A3A",
+"j@    c #FD6868",
+"k@    c #FF6868",
+"l@    c #FF7171",
+"m@    c #FF9B9B",
+"n@    c #FFAFAF",
+"o@    c #FC8787",
+"p@    c #E24545",
+"q@    c #C90606",
+"r@    c #C10000",
+"s@    c #910000",
+"t@    c #9B0000",
+"u@    c #CE0000",
+"v@    c #D20303",
+"w@    c #E33535",
+"x@    c #FFC2C2",
+"y@    c #FFA8A8",
+"z@    c #FB9595",
+"A@    c #E03F3F",
+"B@    c #CE0404",
+"C@    c #C50000",
+"D@    c #D20000",
+"E@    c #D70101",
+"F@    c #E32C2C",
+"G@    c #F77F7F",
+"H@    c #FB9D9D",
+"I@    c #FBA6A6",
+"J@    c #FBAEAE",
+"K@    c #FBB6B6",
+"L@    c #FBBBBB",
+"M@    c #FBBFBF",
+"N@    c #FBC0C0",
+"O@    c #FBB5B5",
+"P@    c #FBAFAF",
+"Q@    c #F79898",
+"R@    c #E03535",
+"S@    c #C70000",
+"T@    c #D00606",
+"U@    c #DD0202",
+"V@    c #E00F0F",
+"W@    c #E31616",
+"X@    c #E41717",
+"Y@    c #E41818",
+"Z@    c #E41919",
+"`@    c #E51A1A",
+" #    c #E51B1B",
+".#    c #E41B1B",
+"+#    c #E31B1B",
+"@#    c #E11A1A",
+"##    c #E01919",
+"$#    c #DD1212",
+"%#    c #D90101",
+"&#    c #CD0F0F",
+"*#    c #E20404",
+"=#    c #E40000",
+"-#    c #E50101",
+";#    c #E60101",
+">#    c #E70101",
+",#    c #E60000",
+"'#    c #E50000",
+")#    c #E30000",
+"!#    c #E10000",
+"~#    c #DF0000",
+"{#    c #B51717",
+"]#    c #CB1B1B",
+"^#    c #CC2121",
+"/#    c #CC2727",
+"(#    c #CC2C2C",
+"_#    c #CD2C2C",
+":#    c #CD2727",
+"<#    c #CD2121",
+"[#    c #CC1B1B",
+"}#    c #CC1414",
+"|#    c #CB0E0E",
+"1#    c #CB0707",
+"2#    c #CA0101",
+"                                                                ",
+"                  . + @ @ @ @ @ @ @ @ @ # $                     ",
+"                % & * = = = = = = = = = = - ;                   ",
+"              > , ' ) ! ! ! ! ! ! ! ! ! ! ) ~ { ]               ",
+"            ^ / ( _ ' ' ' ' ' ' ' ' ' ' ' ' : < [ }             ",
+"          | 1 2 3 4 : 5 2 2 2 2 2 2 2 2 2 6 ) 7 8 9 0           ",
+"      a b c d e f g h ( < i i i i i i 8 j k l 6 8 i m n         ",
+"    o p q r d s t u u v 3 w x x x x r y z u u k 6 * r A B C     ",
+"  D E F G G H t u u u u I J K K K L M N u u u u O P Q R S T U   ",
+"  V W X F F Y Z t u u u u ` 3 X K  ...u u u u +.@.#.F F $.%.&.  ",
+"  *.=.c -.-.;.>.,.t u u u u l '.).g u u u u !.~.{.-.-.c ].^./.  ",
+"  (._.S S S S S :.<.[.u u u u ..t u u u u }.|.1.W W W 2.3.4.5.  ",
+"  6.7.8.8.9.0.a.].b.c.d.u u u u u u u u e.f.g.h.h.].i.j.4.k.l.  ",
+"m.n.o.p.7.q.r._.9.0.s.t.u.u u u u u u v.w.x.h.].y.z.A.B.C.D.E.  ",
+"F.G.H.I.2.J.p.q.r.8.9.K.L.u u u u u u M.N.0.O.P.Q.R.S.T.U.V.W.  ",
+"X.Y.Z.y.O.o.`. +7.r.r I u u u u u u u u .+++@+#+$+%+&+A.*+=+-+  ",
+";+>+,+'+)+!+O.o.p.d ~+u u u u u u u u u t ) {+]+^+/+$+(+_+:+<+  ",
+"[+}+|+1+2+3.3+4+R k u u u u 5+6+7+u u u u u  .8+9+0+a+b+%+1+c+  ",
+"d+e+f+*+R.(+g+h+i+u u u u i+a.j+k+' t u u u u l+m+^.n+^+2+%+o+  ",
+"p+q+*+R.r+2+s+z u u u u I 9.k+t+u+v+d g u u u u w+x+^.@+y+#+z+  ",
+"A+B+C+%+D+a+E+F+u u u G+7.H+I+J+)+J+t+K+z u u u.L+M+z.3+N+O+P+  ",
+"  Q+R+S+g+3.T+p U+u s V+++W+!+y.%.I.y.X+Y+5+Z+`+ @.@+@j+@@#@$@  ",
+"  %@&@*@=@-@;@>@,@'@m+'+!+I.p._.0.a.9.)@!@~@{@]@++^@/@(@_@Q+:@  ",
+"    <@[@}@|@1@2@,+3@4@H.J.8.S 5@6@7@6@5@S 8@9@0@m+a@b@c@d@e@    ",
+"      f@g@h@i@j@k@l@!+J.a.m@q K ~ n@~ K q m@0.p.o@p@q@r@s@      ",
+"        t@u@v@w@9@H.J.].c Q r = J x@J = r y@7@z@A@B@C@          ",
+"            D@E@F@G@z@H@I@J@K@L@M@N@M@L@O@P@Q@R@U S@            ",
+"              T@U@V@W@X@Y@Z@`@ #.#.#.#+#@###$#%#S@              ",
+"                &#*#=#-#;#;#>#>#,#,#'#=#)#!#~#C@                ",
+"                  {#]#^#/#(#_#:#<#[#}#|#1#2#%@                  ",
+"                                                                ",
+"                                                                "};