32 #if defined(G4UI_BUILD_WT_SESSION) || defined(G4UI_USE_WT) 
   41 #include <Wt/WPushButton> 
   43 #include <Wt/WTreeNode> 
   45 #include <Wt/WTabWidget> 
   46 #include <Wt/WStringListModel> 
   72 class G4WTabWidget : 
public Wt::WTabWidget {
 
   75   G4WTabWidget(Wt::WContainerWidget*&);
 
   76   inline void setTabSelected(
bool a) { tabSelected = 
a; };
 
   77   inline void setLastTabCreated(
int a) { lastCreated = 
a; };
 
   78   inline bool isTabSelected() { 
return tabSelected; };
 
   93   void AddMenu(
const char*,
const char*);
 
   98   void AddButton(
const char*,
const char*,
const char*);
 
  104   void AddIcon(
const char* userLabel, 
const char* iconFile, 
const char* command, 
const char* file_name=
"");
 
  112   bool AddTabWidget( Wt::WWidget*, Wt::WString,
int,
int);
 
  115   Wt::WTabWidget* GetSceneTreeComponentsTBWidget();
 
  118   bool IsSplitterReleased();
 
  120   inline bool IsIconMoveSelected() {
 
  121     return fMoveSelected;
 
  123   inline bool IsIconRotateSelected() {
 
  124     return fRotateSelected;
 
  126   inline bool IsIconPickSelected() {
 
  127     return fPickSelected;
 
  129   inline bool IsIconZoomInSelected() {
 
  130     return fZoomInSelected;
 
  132   inline bool IsIconZoomOutSelected() {
 
  133     return fZoomOutSelected;
 
  149   inline  Wt::WContainerWidget * GetMainWindow() {
 
  156   void SessionTerminate();
 
  164   void CreateHelpWidget();
 
  165   void InitHelpTreeAndVisParametersWidget();
 
  170   Wt::WTreeNode* FindTreeItem( Wt::WTreeNode *,
const std::string&);
 
  175   bool eventFilter(Wt::WObject*,Wt::WEvent*);
 
  179   Wt::WContainerWidget* CreateVisParametersTBWidget();
 
  180   Wt::WWidget* CreateHelpTBWidget();
 
  181   Wt::WWidget* CreateCoutTBWidget();
 
  182   Wt::WWidget* CreateHistoryTBWidget();
 
  183   Wt::WWidget* CreateUITabWidget();
 
  184   Wt::WWidget* CreateSceneTreeComponentsTBWidget();
 
  185   Wt::WContainerWidget* CreateRightSplitterWidget();
 
  186   Wt::WContainerWidget* CreateLeftSplitterWidget();
 
  187   void OpenHelpTreeOnCommand(
const Wt::WString &);
 
  188   Wt::WString GetShortCommandPath(
const std::string & );
 
  189   Wt::WString GetLongCommandPath( Wt::WTreeNode*);
 
  191   bool CreateVisCommandGroupAndToolBox(
G4UIcommand*, Wt::WWidget*, 
int, 
bool isDialog);
 
  192   bool CreateCommandWidget(
G4UIcommand* command, Wt::WContainerWidget* parent, 
bool isDialog);
 
  196   Wt::WContainerWidget * fMainWindow;
 
  197   Wt::WLabel *fCommandLabel;
 
  198   Wt::WLineEdit * fCommandArea;
 
  199   Wt::WTextArea *fCoutTBTextArea;
 
  200   Wt::WTextArea *fHelpArea;
 
  201   Wt::WTabWidget* fUITabWidget;
 
  202   Wt::WStringListModel fG4cout;
 
  203   Wt::WLineEdit * fCoutFilter;
 
  205   Wt::WSelectionBox *fHistoryTBTableList;
 
  206   Wt::WTree *fHelpTreeWidget;
 
  207   Wt::WPanel* fHelpTBWidget;
 
  208   Wt::WPanel* fHistoryTBWidget;
 
  209   Wt::WPanel* fCoutTBWidget;  
 
  210   Wt::WTabWidget* fSceneTreeComponentsTBWidget;
 
  211   Wt::WLineEdit* fHelpLine;
 
  212   G4WTabWidget* fViewerTabWidget;
 
  213   Wt::WString fCoutText;
 
  214   Wt::WLabel *fEmptyViewerTabLabel;
 
  215   Wt::WContainerWidget* fMainSplitterWidget;
 
  216   Wt::WContainerWidget* fRightSplitterWidget;
 
  217   Wt::WContainerWidget* fLeftSplitterWidget;
 
  218   Wt::WContainerWidget* fHelpVSplitter;
 
  220   Wt::WToolBar *fToolbarApp;
 
  221   Wt::WToolBar *fToolbarUser;
 
  222   Wt::WString fStringSeparator;
 
  224   Wt::WString fLastOpenPath;
 
  227   bool fRotateSelected;
 
  229   bool fZoomInSelected;
 
  230   bool fZoomOutSelected;
 
  237   void ClearButtonCallback();
 
  238   void CommandEnteredCallback();
 
  239   void CommandEditedCallback(
const Wt::WString & text);
 
  240   void ButtonCallback(
const char*);
 
  241   void HelpTreeClicCallback();
 
  242   void HelpTreeDoubleClicCallback();
 
  243   void ShowHelpCallback();
 
  244   void CommandHistoryCallback();
 
  245   void LookForHelpStringCallback();
 
  246   void CurrentChangedTabWidgetCallback(
int);
 
  247   void CoutFilterCallback(
const Wt::WString&);
 
  248   void TabCloseCallback(
int);
 
  249   void ToolBoxActivated(
int);
 
  250   void VisParameterCallback(Wt::WContainerWidget*);
 
  251   void ChangeColorCallback(Wt::WContainerWidget*);
 
  252   void ChangeCursorStyle(
const Wt::WString&);
 
  253   void ChangeSurfaceStyle(
const Wt::WString&);
 
  254   void OpenIconCallback(
const Wt::WString&);
 
  255   void SaveIconCallback(
const Wt::WString&);
 
  256   void ChangePerspectiveOrthoCallback(
const Wt::WString&);
 
virtual G4bool GetHelpChoice(G4int &)=0
 
virtual void ExitHelp() const =0
 
virtual G4int ReceiveG4cout(const G4String &coutString)
 
virtual void AddMenu(const char *, const char *)
 
virtual void PauseSessionStart(const G4String &Prompt)=0
 
virtual G4UIsession * SessionStart()=0
 
virtual void AddButton(const char *, const char *, const char *)
 
virtual G4int ReceiveG4cerr(const G4String &cerrString)
 
virtual void AddIcon(const char *, const char *, const char *, const char *)