//------------------------------------------------------------------------------ // Application task example -- // (C) Piero Giubilato 2008-2010, Berkeley Lab -- //------------------------------------------------------------------------------ //______________________________________________________________________________ // {Trace} // [File name] "task_TEAM_GUI.cpp" // [Author] "Piero Giubilato" // [Version] "0.1" // [Modified by] "Piero Giubilato" // [Last revision] "20 Jul 2009" // [Language] "C++" // [Compiler] "Visual C++ 8.x 9.x" // [Member of] "Cool SEAL" // [Project] "SEAL" // [Description] "TEAM imaging task" // [Key documentation] // "Visual C++ Reference Help" // {Trace} //______________________________________________________________________________ // Standard components // Root Components // Application components #include "global.h" #include "cool.h" #include "task_TEAM_GUI.h" #include "task_TEAM_Main.h" //______________________________________________________________________________ task_TEAM_GUI::task_TEAM_GUI() { // Standard constructor dbg_Print("task_TEAM_GUI::task_TEAM_GUI:()", DBG_LVL_ZERO); // Satrtup! Init(0); } //______________________________________________________________________________ task_TEAM_GUI::task_TEAM_GUI(void* parent) { // Standard constructor dbg_Print("task_TEAM_GUI::task_TEAM_GUI:(task-Object*)", DBG_LVL_ZERO); // Satrtup! Init(parent); } //______________________________________________________________________________ task_TEAM_GUI::~task_TEAM_GUI() { // Standard destructor dbg_Print("task_TEAM_GUI::~task_TEAM_GUI:()", DBG_LVL_ZERO); } //______________________________________________________________________________ void task_TEAM_GUI::Init(void* parent) { // Debug dbg_Print("task_TEAM_GUI::Init: ()", DBG_LVL_MAKE); // Define some color and size constant UInt_t kbtn_Width = 100; UInt_t kbtn_Height = 34; UInt_t kcmb_Width = 100; UInt_t kcmb_Height = 24; UInt_t kc_White = cool::Gui->kc_White; UInt_t kc_Red = cool::Gui->kc_Red; UInt_t kc_Blue = cool::Gui->kc_Blue; UInt_t kc_Green = cool::Gui->kc_Green; UInt_t kc_Yellow = cool::Gui->kc_Yellow; UInt_t kc_Orange = cool::Gui->kc_Orange; UInt_t kc_Gray = cool::Gui->kc_Gray; UInt_t kc_gray_Dark = cool::Gui->kc_gray_Dark; // Set main window properties cool::Gui->color_Set(cool::Gui->kc_White, cool::Gui->kc_Green); cool::Gui->title_Set("TEAM - (C) Berkeley Lab 2009-2010"); cool::Gui->size_Set(1200, 800); // Main procedures controls // ------------------------ // Label & panel lbl_Desk.push_back(new gui_Label("Detector status", 20, 10)); lbl_Desk.back()->foreColor(kc_White); lbl_Desk.back()->fontSize(14); pnl_Desk.push_back(new gui_Panel(20, 40, 150, 140, cool::Gui->kc_Gray, false)); // Buttons btn_Main.push_back(new gui_CoolButton(pnl_Desk.back(), "Connection", 20, 25, kbtn_Width, kbtn_Height, kc_White, kc_gray_Dark)); btn_Main.push_back(new gui_CoolButton(pnl_Desk.back(), "Dark Frame", 20, 70, kbtn_Width, kbtn_Height, kc_White, kc_gray_Dark)); btn_Main.push_back(new gui_CoolButton(pnl_Desk.back(), "Quit", 20, 115, kbtn_Width, kbtn_Height, kc_Red, kc_gray_Dark)); // Connects buttons to the main module for (UInt_t i = 0; i < btn_Main.size(); i++) btn_Main[i]->task_Connect((task_TEAM_Main*)parent, &task_TEAM_Main::evn_btn_Main); // Leds led_Main.push_back(new gui_Led(pnl_Desk.back(), 22 + kbtn_Width, 27)); led_Main.push_back(new gui_Led(pnl_Desk.back(), 22 + kbtn_Width, 73)); // Acquisition controls // -------------------- // Label & panel lbl_Desk.push_back(new gui_Label("Acquisition", 200, 10)); lbl_Desk.back()->foreColor(kc_White); lbl_Desk.back()->fontSize(14); pnl_Desk.push_back(new gui_Panel(200, 40, 240, 140, cool::Gui->kc_Green, false)); // Buttons btn_Acq.push_back(new gui_CoolButton(pnl_Desk.back(), "Start", 20, 25, kbtn_Width, kbtn_Height, kc_White, kc_Green)); btn_Acq.back()->btn_Mode(gui_CoolButton::km_Latch); // Connects buttons to the main module for (UInt_t i = 0; i < btn_Acq.size(); i++) btn_Acq[i]->task_Connect((task_TEAM_Main*)parent, &task_TEAM_Main::evn_btn_Acq); // Combo # 0 Acquisition mode cmb_Acq.push_back(new gui_Combo(pnl_Desk.back(), 0, kbtn_Width + 40, 30, kbtn_Width, kcmb_Height)); cmb_Acq.back()->label_Set("Acquisition mode", gui_Const::align_Left | gui_Const::align_Top, kc_White); cmb_Acq.back()->cbox_Entry("Single shot", 0); cmb_Acq.back()->cbox_Entry("Continuous", 1); cmb_Acq.back()->cbox_Entry("Countdown", 2); cmb_Acq.back()->cbox_Val(0); // Numeric #0 Bursts count num_Acq.push_back(new gui_Numeric(pnl_Desk.back(), 1, kbtn_Width + 40, 75, kbtn_Width, kcmb_Height, 1, 512)); num_Acq.back()->label_Set("Countdown", gui_Const::align_Left | gui_Const::align_Top, kc_White); // Numeric #1 Frame count num_Acq.push_back(new gui_Numeric(pnl_Desk.back(), 1, kbtn_Width + 40, 120, kbtn_Width, kcmb_Height, 1, 512)); num_Acq.back()->label_Set("Frame per burst", gui_Const::align_Left | gui_Const::align_Top, kc_White); // Maps & Plots // ------------ lbl_Desk.push_back(new gui_Label("Data", 80, 210)); lbl_Desk.back()->foreColor(kc_White); lbl_Desk.back()->fontSize(14); map_Data = new gui_Map(80, 240, 530, 530, kc_White); lbl_Desk.push_back(new gui_Label("Result", 860, 210)); lbl_Desk.back()->foreColor(kc_White); lbl_Desk.back()->fontSize(14); map_Elab = new gui_Map(860, 240, 530, 530, kc_White); // Movie central! // -------------- movie_Elab = new gui_Movie(map_Elab, 860, 810, 530, 24, kc_White); // Refresh cool::Gui->color_Set(cool::Gui->kc_White, cool::Gui->kc_Yellow); cool::Gui->Update(); }