USensorJournal.h

00001 #ifndef _USENSORJOURNAL_H
00002 #define _USENSORJOURNAL_H
00003 // -------------------------------------------------------------------------
00004 #include <gtkmm.h>
00005 #include <time.h>
00006 #include <uwidgets/UEventBox.h>
00007 // #include <USignals.h>
00008 // #include <uwidgets/KineticScroll.h>
00009 #include <plugins.h>
00010 #include <global_macros.h>
00011 // -------------------------------------------------------------------------
00012 class msgItem;
00014 class SensorColumnRecord : public Gtk::TreeModel::ColumnRecord
00015 {
00016   public:
00017 
00018     SensorColumnRecord()
00019     {
00020       add(value_string);
00021       add(time_string);
00022       add(text_message);
00023       add(id_string);
00024       add(name_string);
00025       add(node_string);
00026       add(unet_string);
00027       add(aps_group);
00028       add(time);
00029       add(bgcolor);
00030       add(fgcolor);
00031       add(stype);
00032       add(mark);
00033       add(watch);
00034     }
00035 
00036     Gtk::TreeModelColumn<long> value_string;
00037     Gtk::TreeModelColumn<Glib::ustring> time_string;
00038     Gtk::TreeModelColumn<Glib::ustring> text_message;
00039     Gtk::TreeModelColumn<long> id_string;
00040     Gtk::TreeModelColumn<Glib::ustring> name_string;
00041     Gtk::TreeModelColumn<Glib::ustring> node_string;
00042     Gtk::TreeModelColumn<Glib::ustring> unet_string;
00043     Gtk::TreeModelColumn<Glib::ustring> aps_group;
00044     Gtk::TreeModelColumn<time_t> time;
00045     Gtk::TreeModelColumn<Gdk::Color> bgcolor;
00046     Gtk::TreeModelColumn<Gdk::Color> fgcolor;
00047     Gtk::TreeModelColumn<UniversalIO::IOTypes> stype;
00048     Gtk::TreeModelColumn<bool> mark;
00049     Gtk::TreeModelColumn<bool> watch;
00050 };
00051 // -------------------------------------------------------------------------
00057 class USensorJournal : public UEventBox
00058 {
00059 public:
00060   USensorJournal();
00061   explicit USensorJournal(GtkmmBaseType::BaseObjectType* gobject);
00062   virtual ~USensorJournal();
00063 
00064   virtual void set_connector(const ConnectorRef& connector) throw();
00065   virtual void on_connect() throw();
00066   virtual void on_disconnect() throw();
00067 
00068 protected:
00069 
00070   /* Handlers */
00071   virtual void on_realize();
00072   void on_treeview_row_activated(const Gtk::TreeModel::Path& path, Gtk::TreeViewColumn* column);
00073   void on_change_browse();
00074   bool on_button_press_event(GdkEventButton* event);
00075   bool on_my_event(GdkEvent* event);
00076   bool on_my_log_event(GdkEvent* event);
00077   
00078   void on_menu_watch_generic();
00079   void on_menu_unwatch_generic();
00080   void on_menu_clear_all_generic();
00081   void on_menu_mark_generic(bool state = true);
00082   void on_menu_unmarkall_generic();
00083   void add_watching_for(UniSetTypes::ObjectId id);
00084   void del_watching_for(UniSetTypes::ObjectId id);
00085   void clear_logs(UniSetTypes::ObjectId id = UniSetTypes::DefaultObjectId);
00086   bool on_foreach(const Gtk::TreeIter& it);
00087   std::string get_time();
00088 
00089   typedef std::map<UniSetTypes::ObjectId,Gtk::TreeModel::iterator > SensorStoreMap;
00090   SensorStoreMap SensorStore;
00091 
00092   Gtk::TreeView tree_view_;        
00093   Glib::RefPtr<Gtk::TreeStore> tree_model_ref_;    
00094   Glib::RefPtr<Gtk::TreeModelFilter> tree_model_filter_;
00095   Gtk::Entry browse;
00096   Gtk::VBox vbox;
00097   Gtk::Table parameters;
00098   Gtk::CheckButton chk_id;
00099   Gtk::CheckButton chk_name;
00100   Gtk::CheckButton chk_text;
00101   Gtk::CheckButton chk_aps;
00102   Gtk::CheckButton chk_reglet;
00103   Gtk::CheckButton chk_di;
00104   Gtk::CheckButton chk_do;
00105   Gtk::CheckButton chk_ai;
00106   Gtk::CheckButton chk_ao;
00107   Gtk::VPaned vpan;
00108   Gtk::TreeView tree_view_log_;
00109   Glib::RefPtr<Gtk::ListStore> tree_model_log_ref_;
00110 // Glib::Property<Glib::ustring> property_shmid;    /*!< свойство: идентификатор SM */
00111   Gtk::ProgressBar progress;
00112 
00113   SensorColumnRecord columns_;        
00115   Gtk::ScrolledWindow scrolled_window_;      
00116   Gtk::ScrolledWindow scrolled_window_log_;     
00118   Gtk::Menu m_Menu_Popup;
00119   Gtk::Menu m_Menu_Popup_Logs;
00120   
00121 private:
00122   
00123   void constructor();
00124 //   void update_row(UniSetTypes::ObjectId id, UniSetTypes::ObjectId node, long value);
00125     bool update_rows();
00126 
00127 //   void treeviewcolumn_validated_on_cell_data(Gtk::CellRenderer* renderer, const Gtk::TreeModel::iterator& iter);
00128   void on_editing_started(Gtk::CellEditable* editable, const Glib::ustring& path_string);
00129   void on_editing_canceled();
00130   void on_my_editing_done();
00131   void on_my_edited(const Glib::ustring& path_string, const Glib::ustring& new_text);
00132   void on_modify(const Gtk::TreeModel::iterator& iter,Glib::ValueBase& value,int column );
00133   bool on_rows_visible(const Gtk::TreeModel::iterator& iter );
00134   bool on_check_row_type(const Gtk::TreeModel::iterator& iter );
00135   bool find_in_string(const Glib::ustring& str1);
00136 //   void on_row_changed(const Gtk::TreeModel::Path& path, const Gtk::TreeModel::iterator& iter);
00137 //   void on_row_filtered_changed(const Gtk::TreeModel::Path& path, const Gtk::TreeModel::iterator& iter);
00138   void on_value_changed(const Gtk::SpinButton* pSpin, const Glib::ustring &path_strin);
00139   void on_set_sensor(const Glib::ustring& path_string, long value );
00140 
00141   void on_id_title_changed();
00142   void on_name_title_changed();
00143   void on_value_title_changed();
00144   void on_time_title_changed();
00145   void on_text_title_changed();
00146   void on_aps_title_changed();
00147 
00148   void on_id_width_changed();
00149   void on_name_width_changed();
00150   void on_value_width_changed();
00151   void on_time_width_changed();
00152   void on_aps_width_changed();
00153 
00154   UniSetTypes::ObjectId block_id; 
00155   sigc::connection value_change_connection_;
00156   bool value_changed_;
00157 
00158   DISALLOW_COPY_AND_ASSIGN(USensorJournal);
00159   /*Properties*/
00160   ADD_PROPERTY( property_id_title, Glib::ustring);  
00161   ADD_PROPERTY( property_name_title, Glib::ustring); 
00162   ADD_PROPERTY( property_value_title, Glib::ustring); 
00163   ADD_PROPERTY( property_time_title, Glib::ustring);  
00164   ADD_PROPERTY( property_text_title, Glib::ustring);  
00165   ADD_PROPERTY( property_aps_title, Glib::ustring);  
00166   ADD_PROPERTY( property_info_color, Gdk::Color);   
00167   ADD_PROPERTY( property_warn_color, Gdk::Color);   
00168   ADD_PROPERTY( property_alarm_color, Gdk::Color);  
00169   ADD_PROPERTY( property_attention_color, Gdk::Color);  
00171   ADD_PROPERTY( property_id_width, long);    
00172   ADD_PROPERTY( property_name_width, long)
00173   ADD_PROPERTY( property_value_width, long);
00174   ADD_PROPERTY( property_time_width, long);
00175   ADD_PROPERTY( property_aps_width, long);
00176   ADD_PROPERTY( property_text_width, long);
00177   ADD_PROPERTY( property_local_mode, bool);
00178 
00179 };
00180 #endif

Документация по UniWidgets. Последние изменения: Fri Oct 10 09:57:50 2014. Создано системой  doxygen 1.5.9