Nemiver  0.3
Public Types | Public Member Functions | Static Public Member Functions | List of all members
nemiver::SourceEditor Class Reference

#include <nmv-source-editor.h>

Inheritance diagram for nemiver::SourceEditor:

Public Types

enum  BufferType { BUFFER_TYPE_UNDEFINED, BUFFER_TYPE_SOURCE, BUFFER_TYPE_ASSEMBLY }
 

Public Member Functions

 SourceEditor (Gtk::Window &a_parent_window, const UString &a_root_dir, Glib::RefPtr< Buffer > &a_buf, bool a_composite=false)
 
virtual ~SourceEditor ()
 
View & source_view () const
 
int current_line () const
 
void current_line (int a_line)
 
int current_column () const
 
const Loccurrent_location () const
 
void current_column (int &a_col)
 
bool move_where_marker_to_line (int a_line, bool a_do_scroll=true)
 
void unset_where_marker ()
 
bool set_visual_breakpoint_at_line (int a_line, bool a_is_count_point, bool a_enabled)
 
bool remove_visual_breakpoint_from_line (int a_line)
 
void clear_decorations ()
 
bool is_visual_breakpoint_set_at_line (int a_line) const
 
bool scroll_to_line (int a_line)
 
void scroll_to_iter (Gtk::TextIter &a_iter)
 
void set_path (const UString &a_path)
 
void get_path (UString &a_path) const
 
const UStringget_path () const
 
void get_file_name (UString &a_file_name)
 
bool get_word_at_position (int a_x, int a_y, UString &a_word, Gdk::Rectangle &a_start_rect, Gdk::Rectangle &a_end_rect) const
 
bool do_search (const UString &a_str, Gtk::TextIter &a_start, Gtk::TextIter &a_end, bool a_match_case=false, bool a_match_entire_word=false, bool a_search_backwards=false, bool a_clear_selection=false)
 
void setup_and_popup_menu (GdkEventButton *a_event, Gtk::Widget *attach_to, Gtk::Menu *custom_menu)
 
signals
sigc::signal< void, int, bool > & marker_region_got_clicked_signal () const
 
sigc::signal< void, const Gtk::TextBuffer::iterator & > & insertion_changed_signal () const
 

Static Public Member Functions

static bool get_file_mime_type (const UString &a_path, UString &a_mime_type)
 
static bool setup_buffer_mime_and_lang (Glib::RefPtr< Buffer > &a_buf, const std::string &a_mime_type="text/x-c++")
 
static Glib::RefPtr< Buffercreate_source_buffer ()
 
static bool load_file (Gtk::Window &a_parent, const UString &a_path, const std::list< std::string > &a_supported_encodings, bool a_enable_syntaxt_highlight, Glib::RefPtr< Buffer > &a_source_buffer)
 

Assembly source buffer handling.

BufferType get_buffer_type () const
 
bool current_address (Address &) const
 
void register_assembly_source_buffer (Glib::RefPtr< Buffer > &a_buf)
 
void register_non_assembly_source_buffer (Glib::RefPtr< Buffer > &a_buf)
 
Glib::RefPtr< Bufferget_assembly_source_buffer () const
 
Glib::RefPtr< Bufferget_non_assembly_source_buffer () const
 
bool switch_to_assembly_source_buffer ()
 
bool switch_to_non_assembly_source_buffer ()
 
bool assembly_buf_addr_to_line (const Address &, bool, int &) const
 
bool assembly_buf_line_to_addr (int, Address &) const
 
bool get_assembly_address_range (common::Range &a) const
 
bool move_where_marker_to_address (const Address &address, bool do_scroll, bool a_approximate)
 
bool place_cursor_at_line (size_t)
 
bool place_cursor_at_address (const Address &)
 
bool set_visual_breakpoint_at_address (const Address &a_address, bool is_countpoint, bool enabled)
 
bool remove_visual_breakpoint_from_address (const Address &)
 
bool scroll_to_address (const Address &a_address, bool a_approximate)
 
static bool add_asm (Gtk::Window &a_parent_window, const common::DisassembleInfo &, const std::list< common::Asm > &a_asm, bool a_append, const list< UString > &a_src_search_dirs, list< UString > &a_session_dirs, std::map< UString, bool > &a_ignore_paths, Glib::RefPtr< Buffer > &a_buf)
 
static bool load_asm (Gtk::Window &a_parent_window, const common::DisassembleInfo &, const std::list< common::Asm > &a_asm, bool a_append, const list< UString > &a_src_search_dirs, list< UString > &a_session_dirs, std::map< UString, bool > &a_ignore_paths, Glib::RefPtr< Buffer > &a_buf)
 

Member Enumeration Documentation

◆ BufferType

Enumerator
BUFFER_TYPE_UNDEFINED 
BUFFER_TYPE_SOURCE 
BUFFER_TYPE_ASSEMBLY 

Constructor & Destructor Documentation

◆ SourceEditor()

nemiver::SourceEditor::SourceEditor ( Gtk::Window &  a_parent_window,
const UString a_root_dir,
Glib::RefPtr< Buffer > &  a_buf,
bool  a_composite = false 
)
explicit

◆ ~SourceEditor()

virtual nemiver::SourceEditor::~SourceEditor ( )
virtual

Member Function Documentation

◆ add_asm()

static bool nemiver::SourceEditor::add_asm ( Gtk::Window &  a_parent_window,
const common::DisassembleInfo ,
const std::list< common::Asm > &  a_asm,
bool  a_append,
const list< UString > &  a_src_search_dirs,
list< UString > &  a_session_dirs,
std::map< UString, bool > &  a_ignore_paths,
Glib::RefPtr< Buffer > &  a_buf 
)
static

◆ assembly_buf_addr_to_line()

bool nemiver::SourceEditor::assembly_buf_addr_to_line ( const Address ,
bool  ,
int &   
) const

◆ assembly_buf_line_to_addr()

bool nemiver::SourceEditor::assembly_buf_line_to_addr ( int  ,
Address  
) const

◆ clear_decorations()

void nemiver::SourceEditor::clear_decorations ( )

◆ create_source_buffer()

static Glib::RefPtr<Buffer> nemiver::SourceEditor::create_source_buffer ( )
static

◆ current_address()

bool nemiver::SourceEditor::current_address ( Address ) const

◆ current_column() [1/2]

int nemiver::SourceEditor::current_column ( ) const

◆ current_column() [2/2]

void nemiver::SourceEditor::current_column ( int &  a_col)

◆ current_line() [1/2]

int nemiver::SourceEditor::current_line ( ) const

◆ current_line() [2/2]

void nemiver::SourceEditor::current_line ( int  a_line)

◆ current_location()

const Loc* nemiver::SourceEditor::current_location ( ) const

◆ do_search()

bool nemiver::SourceEditor::do_search ( const UString a_str,
Gtk::TextIter &  a_start,
Gtk::TextIter &  a_end,
bool  a_match_case = false,
bool  a_match_entire_word = false,
bool  a_search_backwards = false,
bool  a_clear_selection = false 
)

◆ get_assembly_address_range()

bool nemiver::SourceEditor::get_assembly_address_range ( common::Range a) const

◆ get_assembly_source_buffer()

Glib::RefPtr<Buffer> nemiver::SourceEditor::get_assembly_source_buffer ( ) const

◆ get_buffer_type()

BufferType nemiver::SourceEditor::get_buffer_type ( ) const

A assembly buffer is a buffer which content doesn't come directly from a file. It as been composed in memory. We use assembly buffers to represent the assembly view of a text file being debugged. Unlike non-assembly buffers, meaningful locations inside the buffer are not necessarily line numbers. In an assembly view, a meaningful location is the address of a machine instruction. So there somehow must be a kind of mapping between the location used for the assembly buffer and the actual line number, because the underlying Buffer implementation relies on line numbers anyhow.

◆ get_file_mime_type()

static bool nemiver::SourceEditor::get_file_mime_type ( const UString a_path,
UString a_mime_type 
)
static

◆ get_file_name()

void nemiver::SourceEditor::get_file_name ( UString a_file_name)

◆ get_non_assembly_source_buffer()

Glib::RefPtr<Buffer> nemiver::SourceEditor::get_non_assembly_source_buffer ( ) const

◆ get_path() [1/2]

const UString& nemiver::SourceEditor::get_path ( ) const

◆ get_path() [2/2]

void nemiver::SourceEditor::get_path ( UString a_path) const

◆ get_word_at_position()

bool nemiver::SourceEditor::get_word_at_position ( int  a_x,
int  a_y,
UString a_word,
Gdk::Rectangle &  a_start_rect,
Gdk::Rectangle &  a_end_rect 
) const

◆ insertion_changed_signal()

sigc::signal<void, const Gtk::TextBuffer::iterator&>& nemiver::SourceEditor::insertion_changed_signal ( ) const

◆ is_visual_breakpoint_set_at_line()

bool nemiver::SourceEditor::is_visual_breakpoint_set_at_line ( int  a_line) const

◆ load_asm()

static bool nemiver::SourceEditor::load_asm ( Gtk::Window &  a_parent_window,
const common::DisassembleInfo ,
const std::list< common::Asm > &  a_asm,
bool  a_append,
const list< UString > &  a_src_search_dirs,
list< UString > &  a_session_dirs,
std::map< UString, bool > &  a_ignore_paths,
Glib::RefPtr< Buffer > &  a_buf 
)
static

◆ load_file()

static bool nemiver::SourceEditor::load_file ( Gtk::Window &  a_parent,
const UString a_path,
const std::list< std::string > &  a_supported_encodings,
bool  a_enable_syntaxt_highlight,
Glib::RefPtr< Buffer > &  a_source_buffer 
)
static

◆ marker_region_got_clicked_signal()

sigc::signal<void, int, bool>& nemiver::SourceEditor::marker_region_got_clicked_signal ( ) const

◆ move_where_marker_to_address()

bool nemiver::SourceEditor::move_where_marker_to_address ( const Address address,
bool  do_scroll,
bool  a_approximate 
)

◆ move_where_marker_to_line()

bool nemiver::SourceEditor::move_where_marker_to_line ( int  a_line,
bool  a_do_scroll = true 
)

◆ place_cursor_at_address()

bool nemiver::SourceEditor::place_cursor_at_address ( const Address )

◆ place_cursor_at_line()

bool nemiver::SourceEditor::place_cursor_at_line ( size_t  )

◆ register_assembly_source_buffer()

void nemiver::SourceEditor::register_assembly_source_buffer ( Glib::RefPtr< Buffer > &  a_buf)

◆ register_non_assembly_source_buffer()

void nemiver::SourceEditor::register_non_assembly_source_buffer ( Glib::RefPtr< Buffer > &  a_buf)

◆ remove_visual_breakpoint_from_address()

bool nemiver::SourceEditor::remove_visual_breakpoint_from_address ( const Address )

◆ remove_visual_breakpoint_from_line()

bool nemiver::SourceEditor::remove_visual_breakpoint_from_line ( int  a_line)

◆ scroll_to_address()

bool nemiver::SourceEditor::scroll_to_address ( const Address a_address,
bool  a_approximate 
)

◆ scroll_to_iter()

void nemiver::SourceEditor::scroll_to_iter ( Gtk::TextIter &  a_iter)

◆ scroll_to_line()

bool nemiver::SourceEditor::scroll_to_line ( int  a_line)

◆ set_path()

void nemiver::SourceEditor::set_path ( const UString a_path)

◆ set_visual_breakpoint_at_address()

bool nemiver::SourceEditor::set_visual_breakpoint_at_address ( const Address a_address,
bool  is_countpoint,
bool  enabled 
)

◆ set_visual_breakpoint_at_line()

bool nemiver::SourceEditor::set_visual_breakpoint_at_line ( int  a_line,
bool  a_is_count_point,
bool  a_enabled 
)

◆ setup_and_popup_menu()

void nemiver::SourceEditor::setup_and_popup_menu ( GdkEventButton *  a_event,
Gtk::Widget *  attach_to,
Gtk::Menu *  custom_menu 
)

◆ setup_buffer_mime_and_lang()

static bool nemiver::SourceEditor::setup_buffer_mime_and_lang ( Glib::RefPtr< Buffer > &  a_buf,
const std::string &  a_mime_type = "text/x-c++" 
)
static

◆ source_view()

View& nemiver::SourceEditor::source_view ( ) const

◆ switch_to_assembly_source_buffer()

bool nemiver::SourceEditor::switch_to_assembly_source_buffer ( )

◆ switch_to_non_assembly_source_buffer()

bool nemiver::SourceEditor::switch_to_non_assembly_source_buffer ( )

◆ unset_where_marker()

void nemiver::SourceEditor::unset_where_marker ( )

The documentation for this class was generated from the following file: