[Rojav-commits] rocgui/dialogs turntabledialog.cpp,NONE,1.1
Brought to you by:
robvrs
|
From: rob v. <ro...@us...> - 2005-11-28 20:19:37
|
Update of /cvsroot/rojav/rocgui/dialogs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9247 Added Files: turntabledialog.cpp Log Message: <No Comment Entered> --- NEW FILE: turntabledialog.cpp --- /** ------------------------------------------------------------ * Module: * Object: * ------------------------------------------------------------ * $Source: /cvsroot/rojav/rocgui/dialogs/turntabledialog.cpp,v $ * $Author: robvrs $ * $Date: 2005/11/28 20:19:29 $ * $Revision: 1.1 $ * $Name: $ */ #if defined(__GNUG__) && !defined(__APPLE__) #pragma implementation "turntabledialog.h" #endif // For compilers that support precompilation, includes "wx/wx.h". #include "wx/wxprec.h" #ifdef __BORLANDC__ #pragma hdrstop #endif #ifndef WX_PRECOMP #include "wx/wx.h" #endif ////@begin includes ////@end includes #include "turntabledialog.h" ////@begin XPM images ////@end XPM images #include "rocrail/wrapper/public/Turntable.h" #include "rocrail/wrapper/public/TTTrack.h" #include "rocrail/wrapper/public/Item.h" #include "rocrail/wrapper/public/Plan.h" #include "rocgui/public/guiapp.h" /*! * TurntableDialog type definition */ IMPLEMENT_DYNAMIC_CLASS( TurntableDialog, wxDialog ) /*! * TurntableDialog event table definition */ BEGIN_EVENT_TABLE( TurntableDialog, wxDialog ) ////@begin TurntableDialog event table entries EVT_GRID_CELL_LEFT_CLICK( TurntableDialog::OnCellLeftClick ) EVT_GRID_CELL_RIGHT_CLICK( TurntableDialog::OnCellRightClick ) EVT_BUTTON( wxID_OK, TurntableDialog::OnOkClick ) EVT_BUTTON( wxID_CANCEL, TurntableDialog::OnCancelClick ) ////@end TurntableDialog event table entries END_EVENT_TABLE() /*! * TurntableDialog constructors */ TurntableDialog::TurntableDialog( ) { } TurntableDialog::TurntableDialog( wxWindow* parent, iONode p_Props ) { Create(parent, -1, "TurntableDialog"); wxFont* font = new wxFont( m_TracksGrid->GetDefaultCellFont() ); font->SetPointSize( (int)(font->GetPointSize() - 1 ) ); m_TracksGrid->SetDefaultCellFont( *font ); m_TracksGrid->SetColLabelValue(0, "nr" ); m_TracksGrid->SetColLabelValue(1, "pos-fb" ); m_TracksGrid->SetColLabelValue(2, "loc-fb" ); m_TracksGrid->SetColLabelValue(3, "block" ); m_TracksGrid->AutoSizeColumns(); m_TracksGrid->AutoSizeRows(); m_Props = p_Props; initValues(); } TurntableDialog::TurntableDialog( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) { Create(parent, id, caption, pos, size, style); } void TurntableDialog::initValues() { // General m_ID->SetValue( wTurntable.getid( m_Props ) ); m_Type->Append( wTurntable.m6082 ); m_Type->Append( wTurntable.m7687 ); m_Type->SetStringSelection( wTurntable.gettype( m_Props ) ); // Location char* str = StrOp.fmt( "%d", wTurntable.getx( m_Props ) ); m_x->SetValue( str ); StrOp.free( str ); str = StrOp.fmt( "%d", wTurntable.gety( m_Props ) ); m_y->SetValue( str ); StrOp.free( str ); str = StrOp.fmt( "%d", wTurntable.getz( m_Props ) ); m_z->SetValue( str ); StrOp.free( str ); if( StrOp.equals( wItem.north, wTurntable.getori( m_Props ) ) ) m_ori->SetSelection( 0 ); else if( StrOp.equals( wItem.east, wTurntable.getori( m_Props ) ) || wTurntable.getori( m_Props ) == NULL ) m_ori->SetSelection( 1 ); else if( StrOp.equals( wItem.south, wTurntable.getori( m_Props ) ) ) m_ori->SetSelection( 2 ); else if( StrOp.equals( wItem.west, wTurntable.getori( m_Props ) ) ) m_ori->SetSelection( 3 ); // Tracks m_TracksGrid->DeleteRows(0,m_TracksGrid->GetNumberRows()); iONode track = wTurntable.gettrack( m_Props ); while( track != NULL ) { m_TracksGrid->AppendRows(); char* nr = StrOp.fmt( "%d", wTTTrack.getnr( track ) ); m_TracksGrid->SetCellValue(m_TracksGrid->GetNumberRows()-1, 0, nr ); StrOp.free( nr ); m_TracksGrid->SetCellValue(m_TracksGrid->GetNumberRows()-1, 1, wTTTrack.getposfb( track ) ); m_TracksGrid->SetCellValue(m_TracksGrid->GetNumberRows()-1, 2, wTTTrack.getlocfb( track ) ); const char* blockid = wTTTrack.getblock( track )==NULL?"":wTTTrack.getblock( track ); m_TracksGrid->SetCellValue(m_TracksGrid->GetNumberRows()-1, 3, blockid ); m_TracksGrid->SetReadOnly( m_TracksGrid->GetNumberRows()-1, 0, true ); m_TracksGrid->SetReadOnly( m_TracksGrid->GetNumberRows()-1, 1, true ); m_TracksGrid->SetReadOnly( m_TracksGrid->GetNumberRows()-1, 2, true ); m_TracksGrid->SetReadOnly( m_TracksGrid->GetNumberRows()-1, 3, true ); track = wTurntable.nexttrack( m_Props, track ); }; m_TracksGrid->Fit(); m_TracksGrid->UpdateDimensions(); } void TurntableDialog::evaluate() { // General wTurntable.setid( m_Props, m_ID->GetValue() ); wTurntable.settype( m_Props, m_Type->GetStringSelection() ); // Location wTurntable.setx( m_Props, atoi( m_x->GetValue() ) ); wTurntable.sety( m_Props, atoi( m_y->GetValue() ) ); wTurntable.setz( m_Props, atoi( m_z->GetValue() ) ); int ori = m_ori->GetSelection(); if( ori == 0 ) wTurntable.setori( m_Props, wItem.north ); else if( ori == 1 ) wTurntable.setori( m_Props, wItem.east ); else if( ori == 2 ) wTurntable.setori( m_Props, wItem.south ); else if( ori == 3 ) wTurntable.setori( m_Props, wItem.west ); } /*! * TurntableDialog creator */ bool TurntableDialog::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) { ////@begin TurntableDialog member initialisation m_Notebook = NULL; m_GeneralPanel = NULL; m_LabelID = NULL; m_ID = NULL; m_LabelType = NULL; m_Type = NULL; m_LocationPanel = NULL; m_LabelX = NULL; m_x = NULL; m_LabelY = NULL; m_y = NULL; m_LabelZ = NULL; m_z = NULL; m_ori = NULL; m_TracksPanel = NULL; m_TracksGrid = NULL; m_OK = NULL; m_Cancel = NULL; ////@end TurntableDialog member initialisation ////@begin TurntableDialog creation SetExtraStyle(GetExtraStyle()|wxWS_EX_BLOCK_EVENTS); wxDialog::Create( parent, id, caption, pos, size, style ); CreateControls(); GetSizer()->Fit(this); GetSizer()->SetSizeHints(this); Centre(); ////@end TurntableDialog creation return true; } /*! * Control creation for TurntableDialog */ void TurntableDialog::CreateControls() { ////@begin TurntableDialog content construction TurntableDialog* itemDialog1 = this; wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL); itemDialog1->SetSizer(itemBoxSizer2); m_Notebook = new wxNotebook( itemDialog1, ID_NOTEBOOK_TURNTABLE, wxDefaultPosition, wxDefaultSize, wxNB_TOP ); m_GeneralPanel = new wxPanel( m_Notebook, ID_PANEL_TT_GENERAL, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTAB_TRAVERSAL ); wxFlexGridSizer* itemFlexGridSizer5 = new wxFlexGridSizer(2, 2, 0, 0); itemFlexGridSizer5->AddGrowableCol(1); m_GeneralPanel->SetSizer(itemFlexGridSizer5); m_LabelID = new wxStaticText( m_GeneralPanel, wxID_STATIC_TT_ID, _("id"), wxDefaultPosition, wxDefaultSize, 0 ); itemFlexGridSizer5->Add(m_LabelID, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5); m_ID = new wxTextCtrl( m_GeneralPanel, ID_TEXTCTRL_TT_ID, _T(""), wxDefaultPosition, wxDefaultSize, 0 ); itemFlexGridSizer5->Add(m_ID, 1, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5); m_LabelType = new wxStaticText( m_GeneralPanel, wxID_STATIC_TT_TYPE, _("type"), wxDefaultPosition, wxDefaultSize, 0 ); itemFlexGridSizer5->Add(m_LabelType, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5); wxString* m_TypeStrings = NULL; m_Type = new wxComboBox( m_GeneralPanel, ID_COMBOBOX_TT_TYPE, _T(""), wxDefaultPosition, wxDefaultSize, 0, m_TypeStrings, wxCB_DROPDOWN ); itemFlexGridSizer5->Add(m_Type, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5); m_Notebook->AddPage(m_GeneralPanel, _("General")); m_LocationPanel = new wxPanel( m_Notebook, ID_PANEL_TT_LOCATION, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTAB_TRAVERSAL ); wxBoxSizer* itemBoxSizer11 = new wxBoxSizer(wxHORIZONTAL); m_LocationPanel->SetSizer(itemBoxSizer11); wxFlexGridSizer* itemFlexGridSizer12 = new wxFlexGridSizer(2, 2, 0, 0); itemBoxSizer11->Add(itemFlexGridSizer12, 0, wxALIGN_TOP|wxALL, 5); m_LabelX = new wxStaticText( m_LocationPanel, wxID_STATIC_TT_X, _("x"), wxDefaultPosition, wxDefaultSize, 0 ); itemFlexGridSizer12->Add(m_LabelX, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5); m_x = new wxTextCtrl( m_LocationPanel, ID_TEXTCTRL_TT_X, _("0"), wxDefaultPosition, wxDefaultSize, wxTE_CENTRE ); itemFlexGridSizer12->Add(m_x, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_TOP|wxALL, 5); m_LabelY = new wxStaticText( m_LocationPanel, wxID_STATIC_TT_Y, _("y"), wxDefaultPosition, wxDefaultSize, 0 ); itemFlexGridSizer12->Add(m_LabelY, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5); m_y = new wxTextCtrl( m_LocationPanel, ID_TEXTCTRL_TT_Y, _("0"), wxDefaultPosition, wxDefaultSize, wxTE_CENTRE ); itemFlexGridSizer12->Add(m_y, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5); m_LabelZ = new wxStaticText( m_LocationPanel, wxID_STATIC_TT_Z, _("z"), wxDefaultPosition, wxDefaultSize, 0 ); itemFlexGridSizer12->Add(m_LabelZ, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5); m_z = new wxTextCtrl( m_LocationPanel, ID_TEXTCTRL_TT_Z, _("0"), wxDefaultPosition, wxDefaultSize, wxTE_CENTRE ); itemFlexGridSizer12->Add(m_z, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5); wxString m_oriStrings[] = { _("&north"), _("&east"), _("&south"), _("&west") }; m_ori = new wxRadioBox( m_LocationPanel, ID_RADIOBOX_TT_ORI, _("Orientation"), wxDefaultPosition, wxDefaultSize, 4, m_oriStrings, 1, wxRA_SPECIFY_COLS ); itemBoxSizer11->Add(m_ori, 0, wxALIGN_TOP|wxALL, 5); m_Notebook->AddPage(m_LocationPanel, _("Location")); m_TracksPanel = new wxPanel( m_Notebook, ID_PANEL_TT_TRACKS, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTAB_TRAVERSAL ); wxBoxSizer* itemBoxSizer21 = new wxBoxSizer(wxVERTICAL); m_TracksPanel->SetSizer(itemBoxSizer21); m_TracksGrid = new wxGrid( m_TracksPanel, ID_GRID, wxDefaultPosition, wxSize(220, 200), wxSUNKEN_BORDER|wxHSCROLL|wxVSCROLL ); m_TracksGrid->SetDefaultColSize(50); m_TracksGrid->SetDefaultRowSize(20); m_TracksGrid->SetColLabelSize(20); m_TracksGrid->SetRowLabelSize(0); m_TracksGrid->CreateGrid(1, 4, wxGrid::wxGridSelectRows); itemBoxSizer21->Add(m_TracksGrid, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 2); m_Notebook->AddPage(m_TracksPanel, _("Tracks")); itemBoxSizer2->Add(m_Notebook, 1, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); wxStdDialogButtonSizer* itemStdDialogButtonSizerProxy23 = new wxStdDialogButtonSizer; itemBoxSizer2->Add(itemStdDialogButtonSizerProxy23, 0, wxGROW|wxALL, 5); m_OK = new wxButton( itemDialog1, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 ); itemStdDialogButtonSizerProxy23->AddButton(m_OK); m_Cancel = new wxButton( itemDialog1, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); itemStdDialogButtonSizerProxy23->AddButton(m_Cancel); itemStdDialogButtonSizerProxy23->Realize(); ////@end TurntableDialog content construction } /*! * Should we show tooltips? */ bool TurntableDialog::ShowToolTips() { return true; } /*! * Get bitmap resources */ wxBitmap TurntableDialog::GetBitmapResource( const wxString& name ) { // Bitmap retrieval ////@begin TurntableDialog bitmap retrieval wxUnusedVar(name); return wxNullBitmap; ////@end TurntableDialog bitmap retrieval } /*! * Get icon resources */ wxIcon TurntableDialog::GetIconResource( const wxString& name ) { // Icon retrieval ////@begin TurntableDialog icon retrieval wxUnusedVar(name); return wxNullIcon; ////@end TurntableDialog icon retrieval } /*! * wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_OK */ void TurntableDialog::OnOkClick( wxCommandEvent& event ) { evaluate(); EndModal( wxID_OK ); } /*! * wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL */ void TurntableDialog::OnCancelClick( wxCommandEvent& event ) { EndModal( 0 ); } /*! * wxEVT_GRID_CELL_LEFT_CLICK event handler for ID_GRID */ void TurntableDialog::OnCellLeftClick( wxGridEvent& event ) { ////@begin wxEVT_GRID_CELL_LEFT_CLICK event handler for ID_GRID in TurntableDialog. // Before editing this code, remove the block markers. event.Skip(true); ////@end wxEVT_GRID_CELL_LEFT_CLICK event handler for ID_GRID in TurntableDialog. } /*! * wxEVT_GRID_CELL_RIGHT_CLICK event handler for ID_GRID */ void TurntableDialog::OnCellRightClick( wxGridEvent& event ) { m_TracksGrid->SelectRow(event.GetRow()); wxString str = m_TracksGrid->GetCellValue( event.GetRow(), 0 ); TraceOp.trc( "ttdlg", TRCLEVEL_INFO, __LINE__, 9999, "OnCellRightClick %s", str.c_str() ); wxMenu menu( str.c_str() ); menu.Append( -1, "Add track..."); menu.Append( -1, "Delete track"); menu.AppendSeparator(); menu.Append( -1, "Properties..."); PopupMenu(&menu, event.GetPosition().x, event.GetPosition().y ); event.Skip(true); } |