cross_aln_widget.cpp
来自「ncbi源码」· C++ 代码 · 共 221 行
CPP
221 行
/* * =========================================================================== * PRODUCTION $Log: cross_aln_widget.cpp,v $ * PRODUCTION Revision 1000.1 2004/06/01 21:06:35 gouriano * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.4 * PRODUCTION * =========================================================================== *//* $Id: cross_aln_widget.cpp,v 1000.1 2004/06/01 21:06:35 gouriano Exp $ * =========================================================================== * * PUBLIC DOMAIN NOTICE * National Center for Biotechnology Information * * This software/database is a "United States Government Work" under the * terms of the United States Copyright Act. It was written as part of * the author's official duties as a United States Government employee and * thus cannot be copyrighted. This software/database is freely available * to the public for use. The National Library of Medicine and the U.S. * Government have not placed any restriction on its use or reproduction. * * Although all reasonable efforts have been taken to ensure the accuracy * and reliability of the software and data, the NLM and the U.S. * Government do not and cannot warrant the performance or results that * may be obtained by using this software or data. The NLM and the U.S. * Government disclaim all warranties, express or implied, including * warranties of performance, merchantability or fitness for any particular * purpose. * * Please cite the author in any work or product based on this material. * * =========================================================================== * * Authors: Vlad Lebedev * */#include <ncbi_pch.hpp>#include <gui/widgets/aln_crossaln/cross_aln_widget.hpp>#include "cross_aln_pane.hpp"BEGIN_NCBI_SCOPEvoid s_CCrossAlnWidget_ScrollCB(Fl_Widget* w, void*){ dynamic_cast<CCrossAlnWidget&> (*w->parent()).x_ScrollCB();}CCrossAlnWidget::CCrossAlnWidget(int x, int y, int w, int h, const char* label) : Fl_Group(x, y, w, h, label){ const int kScrollBarSize = 15; const int kCrossPanelSize = 100; begin(); m_ScrollX1 = new Fl_Scrollbar(x, y, w - kScrollBarSize, kScrollBarSize); m_ScrollX1->type(FL_HORIZONTAL); m_ScrollX1->callback( s_CCrossAlnWidget_ScrollCB ); m_ScrollX1->labeltype(FL_NO_LABEL); int p_size = (h - kScrollBarSize * 2 - kCrossPanelSize) / 2; m_ScrollY1 = new Fl_Scrollbar (x + (w - kScrollBarSize), y + kScrollBarSize, kScrollBarSize, p_size); m_ScrollY1->callback( s_CCrossAlnWidget_ScrollCB ); m_ScrollY1->labeltype(FL_NO_LABEL); m_ScrollX2 = new Fl_Scrollbar(x, y + h - kScrollBarSize, w - kScrollBarSize, kScrollBarSize); m_ScrollX2->type(FL_HORIZONTAL); m_ScrollX2->callback( s_CCrossAlnWidget_ScrollCB ); m_ScrollX2->labeltype(FL_NO_LABEL); m_ScrollY2 = new Fl_Scrollbar (x + (w - kScrollBarSize), y + h - kScrollBarSize - p_size, kScrollBarSize, p_size); m_ScrollY2->callback( s_CCrossAlnWidget_ScrollCB ); m_ScrollY2->labeltype(FL_NO_LABEL); // we wrap the panel in a group because FLTK will not respect the // widget's border type Fl_Group* group = new Fl_Group(x, y + kScrollBarSize, w - kScrollBarSize, h - kScrollBarSize * 2); const Fl_Boxtype panel_box = FL_THIN_DOWN_FRAME; group->box(panel_box); group->labeltype(FL_NO_LABEL); m_CrossPane.reset( new CCrossAlnPane (x + Fl::box_dx(panel_box), y + kScrollBarSize + Fl::box_dy(panel_box), w - kScrollBarSize - Fl::box_dw(panel_box), h - kScrollBarSize * 2 - Fl::box_dh(panel_box)) ); group->end(); group->resizable(m_CrossPane.get()); end(); resizable(group);}CCrossAlnWidget::~CCrossAlnWidget(){ delete m_ScrollX1; delete m_ScrollX2; delete m_ScrollY1; delete m_ScrollY2;}void CCrossAlnWidget::x_ScrollCB(){ m_CrossPane->Scroll(m_ScrollX1->value(), m_ScrollY1->value(), m_ScrollX2->value(), m_ScrollY2->value() );}void CCrossAlnWidget::FitToWindow(void){ m_CrossPane->FitToWindow();}void CCrossAlnWidget::ZoomToSequence(void){ m_CrossPane->ZoomToSequence();}void CCrossAlnWidget::ZoomOnRange(const TSeqRange& range){ m_CrossPane->ZoomOnRange(range);}void CCrossAlnWidget::ZoomOnAlignment(){ m_CrossPane->ZoomOnAlignment();} void CCrossAlnWidget::SetDataSource(CCrossAlnDataSource* ds){ m_CrossPane->SetDataSource(ds);}void CCrossAlnWidget::Update(){ m_CrossPane->Update();}// Set/Clear selectionvoid CCrossAlnWidget::SelectObject(const CObject* obj){ m_CrossPane->SelectObject(obj);}void CCrossAlnWidget::SelectSeqLoc(const CSeq_loc* loc){ //m_CrossPane->SelectSeqLoc(loc);}void CCrossAlnWidget::ClearSelection(){ m_CrossPane->ClearSelection();}void CCrossAlnWidget::SetColor(EDisplayElement elem, Fl_Color color){ //m_CrossPane->SetColor(elem, color);}/*Fl_Color CCrossAlnWidget::GetColor(EDisplayElement elem) const{ return m_CrossPane->GetColor(elem);}*/END_NCBI_SCOPE/* * =========================================================================== * $Log: cross_aln_widget.cpp,v $ * Revision 1000.1 2004/06/01 21:06:35 gouriano * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.4 * * Revision 1.4 2004/05/21 22:27:52 gorelenk * Added PCH ncbi_pch.hpp * * Revision 1.3 2004/03/11 17:50:41 dicuccio * Updated typedefs: dropped TDimension, TPosition, TIndex, TColor; use TSeqRange * instead of TRange * * Revision 1.2 2004/01/27 16:20:26 lebedev * Methods for working with selections added * * Revision 1.1 2003/12/22 13:12:34 lebedev * Initial revision * * =========================================================================== */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?