------------------------------------------------------------------------------ ------------------------------------------------------------------------------ -- Cheddar is a GNU GPL real-time scheduling analysis tool. -- This program provides services to automatically check schedulability and -- other performance criteria of real-time architecture models. -- -- Copyright (C) 2002-2023, Frank Singhoff, Alain Plantec, Jerome Legrand, -- Hai Nam Tran, Stephane Rubini -- -- The Cheddar project was started in 2002 by -- Frank Singhoff, Lab-STICC UMR 6285, Université de Bretagne Occidentale -- -- Cheddar has been published in the "Agence de Protection des Programmes/France" in 2008. -- Since 2008, Ellidiss technologies also contributes to the development of -- Cheddar and provides industrial support. -- -- The full list of contributors and sponsors can be found in README.md -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -- -- -- Contact : cheddar@listes.univ-brest.fr -- ------------------------------------------------------------------------------ -- Last update : -- $Rev: 3657 $ -- $Date: 2020-12-13 13:25:49 +0100 (dim., 13 déc. 2020) $ -- $Author: singhoff $ ------------------------------------------------------------------------------ ------------------------------------------------------------------------------ with Ada.Strings.Unbounded; use Ada.Strings.Unbounded; with Gtk; use Gtk; with Gtk.Window; use Gtk.Window; with Gtk.Table; use Gtk.Table; with Gtk.Label; use Gtk.Label; with Gtk.GEntry; use Gtk.GEntry; with Gtk.Button; use Gtk.Button; with Gtk.Check_Button; use Gtk.Check_Button; with Gtk.Separator; use Gtk.Separator; with Gtk.Box; use Gtk.Box; with Gtk.Scrolled_Window; use Gtk.Scrolled_Window; with Gtkada.Builder; use Gtkada.Builder; with Glib; use Glib; with Glib.Object; use Glib.Object; with objects; use objects; with systems; use systems; with editor_config; use editor_config; with sets; with Unchecked_Deallocation; package graphical_editor.select_time_line is package generic_time_line_object_set is new sets (max_element => editor_config.max_time_line, element => generic_object_ptr, free => free, copy => copy, put => put, xml_string => xml_string, xml_ref_string => xml_string); use generic_time_line_object_set; subtype time_line_object_range is generic_time_line_object_set.element_range; subtype time_line_object_range_ptr is generic_time_line_object_set.element_range_ptr; subtype time_line_object_iterator is generic_time_line_object_set.iterator; subtype time_line_object_iterator_ptr is generic_time_line_object_set.iterator_ptr; type select_time_line_callback_type is access procedure; type select_time_line_record is new gtk_window_record with private; type select_time_line_access is access all select_time_line_record'class; procedure gtk_new (select_time_line : out select_time_line_access; a_system : in system; call : in select_time_line_callback_type); procedure initialize (select_time_line : access select_time_line_record'class; a_system : in system; call : in select_time_line_callback_type); select_time_line : select_time_line_access; type time_line_object_set is new generic_time_line_object_set.set with null record; function to_display (searched_name : in Unbounded_String; searched_type : in objects_type) return Boolean; time_line_to_display : time_line_object_set; private type object_widget is record object_name : gtk_entry; object_type : gtk_entry; display_time_line : gtk_check_button; end record; type object_widget_table is array (time_line_object_range) of object_widget; type select_time_line_record is new gtk_window_record with record to_be_called : select_time_line_callback_type; scroll : gtk_scrolled_window; table : gtk_table; lab : gtk_label; entries : object_widget_table; nb_entries : time_line_object_range; ok_button : gtk_button; hseparator : gtk_hseparator; vseparator : gtk_vseparator; hbox : gtk_hbox; end record; procedure free is new Unchecked_Deallocation (select_time_line_record'class, select_time_line_access); end graphical_editor.select_time_line;