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