예제 #1
0
/**
 * \brief Answer to a click on "Zoom 100%".
 * \param event This event occured.
 */
void bf::sprite_view_ctrl::on_zoom_100( wxCommandEvent& WXUNUSED(event) )
{
    m_combo_zoom->SetSelection( m_combo_zoom->FindString(wxT("100")) );
    m_sprite_view->set_zoom( 100 );

    adjust_scrollbars();
} // sprite_view_ctrl::on_zoom_100()
예제 #2
0
/**
 * \brief Answer to a click on "Zoom fit".
 * \param event This event occured.
 */
void bf::sprite_view_ctrl::on_zoom_fit( wxCommandEvent& WXUNUSED(event) )
{
    m_sprite_view->auto_zoom();
    m_combo_zoom->SetValue
    ( wxString::Format(wxT("%d"), m_sprite_view->get_zoom()) );

    adjust_scrollbars();
} // sprite_view_ctrl::on_zoom_fit()
예제 #3
0
/**
 * \brief Constructor.
 * \param parent The parent window.
 * \param env The workspace environment to use.
 * \param spr The sprite to display.
 */
bf::sprite_view_ctrl::sprite_view_ctrl
( wxWindow& parent, workspace_environment& env, const sprite& spr )
    : wxPanel(&parent), m_sprite_view(NULL), m_workspace(env)
{
    create_controls();
    create_sizers();
    set_sprite(spr);

    m_combo_zoom->SetSelection( m_combo_zoom->FindString(wxT("100")) );
    adjust_scrollbars();
} // sprite_view_ctrl::sprite_view_ctrl()
예제 #4
0
void TagScrollView::scale_by(
        float factor
    )
{
    if( factor <= 0. ) {
        return;
    }

    widget()->resize( widget()->size() * factor );

    adjust_scrollbars( factor );
}
예제 #5
0
/**
 * \brief Set the zoom according to the value in the combo box.
 */
void bf::sprite_view_ctrl::set_zoom_from_combo()
{
    long z;

    if ( m_combo_zoom->GetValue().ToLong(&z) )
    {
        if ((int)z <= 0)
            z = 0;

        m_sprite_view->set_zoom( z );
    }

    adjust_scrollbars();
} // sprite_view_ctrl::set_zoom_from_combo()
예제 #6
0
/**
 * \brief Answer to a click on "Zoom in".
 * \param event This event occured.
 */
void bf::sprite_view_ctrl::on_zoom_in( wxCommandEvent& WXUNUSED(event) )
{
    int index = m_combo_zoom->GetSelection();

    if( index == wxNOT_FOUND )
    {
        m_sprite_view->set_zoom( m_sprite_view->get_zoom() + 50 );

        m_combo_zoom->SetValue
        ( wxString::Format(wxT("%d"), m_sprite_view->get_zoom()) );
    }
    else if ( (unsigned int)index + 1 < m_combo_zoom->GetCount() )
    {
        m_combo_zoom->SetSelection(index + 1);
        set_zoom_from_combo();
    }

    adjust_scrollbars();
} // sprite_view_ctrl::on_zoom_in()
예제 #7
0
/**
 * \brief Answer to a click on "Zoom out".
 * \param event This event occured.
 */
void bf::sprite_view_ctrl::on_zoom_out( wxCommandEvent& WXUNUSED(event) )
{
    int index = m_combo_zoom->GetSelection();

    if( index == wxNOT_FOUND )
    {
        if ( m_sprite_view->get_zoom() > 50 )
            m_sprite_view->set_zoom( m_sprite_view->get_zoom() - 50 );
        else
            m_sprite_view->set_zoom( 1 );

        m_combo_zoom->SetValue
        ( wxString::Format(wxT("%d"), m_sprite_view->get_zoom()) );
    }
    else  if ( index > 0 )
    {
        m_combo_zoom->SetSelection(index - 1);
        set_zoom_from_combo();
    }

    adjust_scrollbars();
} // sprite_view_ctrl::on_zoom_out()
예제 #8
0
/**
 * \brief Event sent to a resized window.
 * \param event The event.
 */
void bf::sprite_view_ctrl::on_size( wxSizeEvent& event )
{
    adjust_scrollbars();
    event.Skip();
} // sprite_view_ctrl::on_size()