/***********************************************************************
*
* ELMER, A Computational Fluid Dynamics Program.
*
* Copyright 1st April 1995 - , Center for Scientific Computing,
* Finland.
*
* All rights reserved. No part of this program may be used,
* reproduced or transmitted in any form or by any means
* without the written permission of CSC.
*
* Address: Center for Scientific Computing
* Tietotie 6, P.O. BOX 405
* 02101 Espoo, Finland
* Tel. +358 0 457 2001
* Telefax: +358 0 457 2302
* EMail: Jari.Jarvinen@csc.fi
************************************************************************/
/***********************************************************************
Program: ELMER Front
Module: ecif_userinterface.h
Language: C++
Date: 01.10.98
Version: 1.00
Author(s): Martti Verho
Revisions:
Abstract: An absract base class for userinterface.
************************************************************************/
#ifndef _ECIF_USERINTERFACE_
#define _ECIF_USERINTERFACE_
#include "ecif_def.h"
class UserInterface {
public:
friend class Control;
UserInterface() {applicationName = NULL; theModel = NULL;}
UserInterface(Hinst a_n, Model* m) {applicationName = a_n; theModel = m;}
virtual void acceptEmfParameters(char* msg, int nof_params, char* pdatas, bool* accept_flags) {}
virtual void checkMeshInfoTs(char* ts) {}
virtual void colorFileWasRead(char* filename) {}
virtual void configureButtons(char* buttons, int state) {}
virtual void configureButtonOption(char* button, char* option, char* value) {}
virtual void configureMenuButtons(char* menu, char* buttons, int state) {}
virtual void configureMenuButtonOption(char* menu, char* button, char* option, char* value) {}
virtual void errMsg(int err_level, char* str1, char* str2 = NULL, char* str3 = NULL, char* str4 = NULL);
virtual void fieldNameGuiToSif(const char* gui_name, char* sif_name_buffer) {}
virtual void fieldNameSifToGui(const char* sif_name, char* gui_name_buffer) {}
virtual void generateEvent() {}
virtual void getCurrentTimestamp(char* buffer) {};
virtual bool getEquationVarsVariable(const char* equation_name, char*& equation_vars_name) { return false;}
virtual bool getIsSolverTargetField(const char* equation_name, const char* field_name) { return false; }
virtual void getMeshDirectoryInfo(char*& dir, char*& dir_abs) {};
virtual void getMatcSifDefinitions(int& nof_defs, char**& defs) {};
virtual bool getMeshInputFileName(char*& mif_file_name) {return false;}
virtual void getModelDirectoryInfo(char*& dir, char*& dir_abs) {};
virtual void getModelNameInfo(char*& model_name, char*& problem_name) {};
virtual bool getParameterFieldInfo(const char* parameter, const char* field, ParameterFieldInfo& finfo) { return false; }
virtual bool getSolverKeywordTypeGiven(const char* parameter, const char* field) { return false;}
virtual Renderer* getRenderer() { return NULL; }
virtual bool getUseModelFileSettings() {return true;}
virtual bool getUseVariableNameInEquationName(const char* equation_name) { return false;}
virtual void markSelectedBoundaries() {}
virtual void matcFileWasRead(char* filename);
virtual void pause(double seconds = 5.0, bool show=false);
virtual void saveModelPropertyData(Model* model) {}
virtual void selectBody(int bd1_id, int lr1_id, int bd2_id, int lr2_id, bool is_selected = true) {}
virtual void selectBoundary(int elem_id, int bd1_id, int lr1_id, int bd2_id, int lr2_id, bool extend = false) {}
virtual void selectBoundaries(int nof_elems, int* elem_ids) {}
virtual int sendCommandToGui(const char* cmd, const char* arg = NULL) {return 0;};
virtual void setBoundarySelectionMode(int elem_id, bool is_selected = true, bool do_update = true) {}
virtual void setCurrentMeshH(double mesh_h) {}
virtual void setExceptionThrown() {}
virtual void setInitialMeshH(double mesh_h) {}
virtual void setInitialState() {}
virtual void setNeedsUpdate(const char* target) {}
virtual void setModelHasElmerMesh() {}
virtual void setModelHasMeshParameter() {}
virtual void setModelHasMatcDefinitions() {}
virtual void setMeshEdited() {}
virtual void setMeshExists() {}
virtual void setMeshInputUnit(double unit) {}
virtual void setParameterFieldValueState(int parameter_id, const char* field_name,
bool has_value, bool value_has_changed) {}
virtual void setTimestamp(ecif_parameterType parameter, char* ts) {}
virtual void setWindowTitle(char* title) {}
virtual void setWasUpdated(const char* target) {}
virtual int showMsg(char* messge, short extra_line_feeds = 0, bool append = true);
virtual void showProgressMsg(Timer& timer, int frequency_nbr,
int nbr, int total_nbr,
char* text1 = NULL, char* text2 = NULL) {}
virtual void showUsedTimeMsg(double time, char* text,
short extra_line_feeds = 0, bool append = true) {}
virtual void showUsedTimeMsg(double time, char* text1,int nof_objects, char* text2,
short extra_line_feeds = 0, bool append = true) {}
virtual void start(int argc, char** argv);
virtual void update() {}
virtual void update(int counter, int update_interval) {}
virtual void updateBodyData(Model* model) {}
virtual void updateBoundaryData(Model* model) {}
virtual void updateMeshZeroVelocityElements(int nof_zv_elements) {}
virtual void updateModelData(Model* model) {}
virtual void updateModelFlags(Model* model) {}
virtual void updateModelStatistics(Model* model) {}
virtual void updateModelStatus(Model* model) {}
virtual void updateNextActiveSelectionTolerance(double tolerance) {}
virtual void updateObjectData(Model* model) {}
virtual void updateParameterDataPre(Model* model) {}
virtual void updateParameterDataPost(Model* model) {}
virtual void updateRendererInfo(const RendererInfo& renderer_info) {}
virtual void variableNameGuiToSif(const char* gui_name, char* sif_name_buffer) {}
virtual void variableNameSifToGui(const char* sif_name, char* gui_name_buffer) {}
protected:
Hinst applicationName;
static Control* theControlCenter;
Model* theModel;
};
#endif
syntax highlighted by Code2HTML, v. 0.9.1