void cMenu::handleButton( pClient ps, cClientPacket* pkg ) { cPacketMenuSelection* p = (cPacketMenuSelection*)pkg; pChar pc = ps->currChar(); if ( ! pc ) return; uint32_t button = p->buttonId.get(); this->switchs = &p->switchs; this->textResp = &p->text_entries; uint32_t buttonReturnCode; if( button!=MENU_CLOSE ) { buttonReturnCode = getButton( button ); map< uint32_t, FUNCIDX >::iterator iter( buttonCallbacks.find( button ) ); if( iter!=buttonCallbacks.end() ) { AmxFunction func( iter->second ); func.Call( serial, pc->getSerial(), buttonReturnCode ); return; } } else { buttonReturnCode = 0; } //set property if there are if( ( buttonReturnCode!=MENU_CLOSE ) && ( buttonReturnCode==buffer[3] ) ) { map< uint32_t, int32_t >::iterator propIter( editProps.begin() ), lastProp( editProps.end() ); for( ; propIter!=lastProp; ++propIter ) { int32_t props = propIter->first; int prop, prop2, prop3; getPropsFromInt( props, prop, prop2, prop3 ); if( getPropertyType( prop )!=T_BOOL ) { unistring* data = getText( propIter->second, true ); if( data!=NULL ) setPropertyField( buffer[0], buffer[1], prop, prop2, prop3, *data ); } else { setPropertyField( buffer[0], buffer[1], prop, prop2, prop3, getCheckBox( propIter->second, true ) ); } } } if( callback!=NULL ) callback->Call( serial, pc->getSerial(), buttonReturnCode ); else hard( this, ps, buttonReturnCode ); }
template<int prp = -1> bool write(std::string file, std::string g_name = "grids" , file_type ft = file_type::ASCII) { // Header for the vtk std::string vtk_header; // Point list of the VTK std::string point_list; // Vertex list of the VTK std::string vertex_list; // Graph header std::string vtk_binary_or_ascii; // vertex properties header std::string point_prop_header; // edge properties header std::string vertex_prop_header; // Data point header std::string point_data_header; // Data point std::string point_data; // VTK header vtk_header = "# vtk DataFile Version 3.0\n" + g_name + "\n"; // Choose if binary or ASCII if (ft == file_type::ASCII) {vtk_header += "ASCII\n";} else {vtk_header += "BINARY\n";} // Data type for graph is DATASET POLYDATA vtk_header += "DATASET POLYDATA\n"; // point properties header point_prop_header = get_point_properties_list(); // Get point list point_list = get_point_list(); // vertex properties header vertex_prop_header = get_vertex_properties_list(); // Get vertex list vertex_list = get_vertex_list(); // Get the point data header point_data_header = get_point_data_header(); // Get the maximum number of fused grids size_t mf = getMaxFused(); // For each property in the vertex type produce a point data for (size_t i = 0 ; i < mf ; i++) point_data += get_properties_output(i,g_name); lastProp(); // write the file std::ofstream ofs(file); // Check if the file is open if (ofs.is_open() == false) {std::cerr << "Error cannot create the VTK file: " + file + "\n";} ofs << vtk_header << point_prop_header << point_list << vertex_prop_header << vertex_list << point_data_header << point_data; // Close the file ofs.close(); // Completed succefully return true; }