Frama-C API - main_window
inherit view_code
Main Components
method toplevel : main_window_extension_points
The whole GUI aka self
The object managing the menubar and the toolbar.
method file_tree : Frama_c_gui.Filetree.t
The tree containing the list of files and functions
method annot_window : Frama_c_gui.Wtext.text
The information panel. The text is automatically cleared whenever the selection is changed. You should not directly use the buffer contained in the annot_window to add text. Use the method pretty_information
.
method pretty_information : 'a. ?scroll:bool -> ('a, Stdlib.Format.formatter, unit) Stdlib.format -> 'a
Pretty print a message in the annot_window
, optionally scrolling it to the beginning of the message.
Source viewers
method source_viewer : Frama_c_gui.GSourceView.source_view
The GText.view
showing the AST.
method reactive_buffer : reactive_buffer
The buffer containing the AST.
method original_source_viewer : Frama_c_gui.Source_manager.t
The multi-tab source file display widget containing the original source.
Dialog Boxes
Display the analysis configuration dialog and offer the opportunity to launch to the user
method error : 'a. ?parent:GWindow.window_skel -> ?reset:bool -> ('a, Stdlib.Format.formatter, unit) Stdlib.format -> 'a
Popup a modal dialog displaying an error message. If reset
is true (default is false), the gui is reset after the dialog has been displayed.
Extension Points
method register_source_selector : (GMenu.menu GMenu.factory -> main_window_extension_points -> button:int -> Frama_c_gui.Pretty_source.localizable -> unit) -> unit
register an action to perform when button is released on a given localizable. If the button 3 is released, the first argument is popped as a contextual menu.
method register_source_highlighter : (reactive_buffer -> Frama_c_gui.Pretty_source.localizable -> start:int -> stop:int -> unit) -> unit
register an highlighting function to run on a given localizable between start and stop in the given buffer. Priority of Gtext.tags
is used to decide which tag is rendered on top of the other.
method register_panel : (main_window_extension_points -> string * GObj.widget * (unit -> unit) option) -> unit
register_panel (name, widget, refresh)
registers a panel in GUI. The arguments are the name of the panel to create, the widget containing the panel and a function to be called on refresh.
General features
Force to rehighlight the current displayed buffer. Plugins should call this method whenever they have changed the states on which the function given to register_source_highlighter
have been updated.
Force to redisplay the current displayed buffer. Plugins should call this method whenever they have changed the globals. For example whenever a plugin adds an annotation, the buffers need to be redisplayed.
Lock the GUI ; run the function ; catch all exceptions ; Unlock GUI The parent window must be set if this method is not called directly by the main window: it will ensure that error dialogs are transient for the right window.
Set cancelable to true
if the protected action should be cancellable by the user through button `Stop'.
method full_protect : 'a. cancelable:bool -> ?parent:GWindow.window_skel -> (unit -> 'a) -> 'a option
Lock the GUI ; run the function ; catch all exceptions ; Unlock GUI ; returns f ()
. The parent window must be set if this method is not called directly by the main window: it will ensure that error dialogs are transient for the right window.
Set cancelable to true
if the protected action should be cancellable by the user through button `Stop'.
Pretty print a temporary information in the status bar
If true
, the messages shown in the GUI can mention internal ids (vid, sid, etc.). If false
, other means of identification should be used (line numbers, etc.).