~ubuntu-branches/ubuntu/karmic/scilab/karmic

« back to all changes in this revision

Viewing changes to routines/menusX/men_madial.c

  • Committer: Bazaar Package Importer
  • Author(s): Torsten Werner
  • Date: 2002-03-21 16:57:43 UTC
  • Revision ID: james.westby@ubuntu.com-20020321165743-e9mv12c1tb1plztg
Tags: upstream-2.6
ImportĀ upstreamĀ versionĀ 2.6

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Copyright ENPC */
 
2
#ifdef WIN32 
 
3
#include "wmen_scilab.h"
 
4
#else
 
5
#include "men_scilab.h"
 
6
#endif
 
7
 
 
8
int MatrixDialogWindow();
 
9
 
 
10
MADialog MAD;
 
11
 
 
12
/*************************************************     
 
13
 * Interface with Scilab 
 
14
 **********************************************************/
 
15
 
 
16
void C2F(xmatdg)(label,ptrlab,nlab,value,ptrv,descv,ptrdescv,desch,ptrdesch,nl,nc,res,ptrres,ierr)
 
17
     int *label,*ptrlab,*nlab,*value,*ptrv,*descv,*ptrdescv,*desch,*ptrdesch,*nl,*nc,*res,*ptrres,*ierr;
 
18
{
 
19
  int i,rep;
 
20
  int maxchars= *ierr;
 
21
  *ierr=0;
 
22
  MAD.nv = *nl*(*nc);
 
23
  /* conversion of scilab characters into strings */
 
24
  ScilabMStr2C(label,nlab,ptrlab,&(MAD.labels),ierr);
 
25
  if ( *ierr == 1) return;
 
26
  ScilabMStr2CM(descv,nl,ptrdescv,&(MAD.VDesc),ierr);
 
27
  if ( *ierr == 1) return;
 
28
  ScilabMStr2CM(desch,nc,ptrdesch,&(MAD.HDesc),ierr);
 
29
  if ( *ierr == 1) return;
 
30
  ScilabMStr2CM(value,&(MAD.nv),ptrv,&(MAD.data),ierr);
 
31
  if ( *ierr == 1) return;
 
32
  MAD.nl = *nl;
 
33
  MAD.nc = *nc;
 
34
  MAD.ierr = 0;
 
35
  rep = MatrixDialogWindow();
 
36
  if ( rep == FALSE || MAD.ierr == 1 )
 
37
    {
 
38
      *nl = 0;
 
39
    }
 
40
  else
 
41
    {
 
42
      ScilabCM2MStr(MAD.data,MAD.nv,res,ptrres,maxchars,ierr);
 
43
    }
 
44
 
 
45
  FREE(MAD.labels);
 
46
  for (i=0;i< MAD.nl*MAD.nc;i++) FREE(MAD.data[i]); FREE(MAD.data);
 
47
  for (i=0;i< MAD.nl;i++) FREE(MAD.VDesc[i]); FREE(MAD.VDesc);
 
48
  for (i=0;i< MAD.nc;i++) FREE(MAD.HDesc[i]); FREE(MAD.HDesc);
 
49
}
 
50
 
 
51
/*************************************************     
 
52
 * Test function 
 
53
 **********************************************************/
 
54
 
 
55
int TestMatrixDialogWindow()
 
56
{
 
57
  int rep,i;
 
58
  static char *labels = "LaBel";
 
59
  static char *vdesc[] = {
 
60
    "row 1","row 2","row 3",
 
61
    NULL
 
62
    };
 
63
  static char *hdesc[] = {
 
64
    "col 1","col 2",
 
65
    NULL
 
66
    };
 
67
  MAD.nl = 3;
 
68
  MAD.nc = 2;
 
69
  MAD.nv = MAD.nc*MAD.nl;
 
70
  MAD.labels = labels;
 
71
  MAD.VDesc = vdesc;
 
72
  MAD.HDesc = hdesc;
 
73
  /** Warning data must be allocated because 
 
74
    MatricDialogWindow will reallc it to store result **/
 
75
  MAD.data  = (char **) malloc((6+1)*sizeof(char *));
 
76
  if ( MAD.data == ( char **) 0 ) return(FALSE);
 
77
  for ( i = 0 ; i < 6 ; i++ )
 
78
    {
 
79
      MAD.data[i] = (char *) malloc(2*sizeof(char));
 
80
      if ( MAD.data[i] == ( char *) 0 ) return(FALSE);
 
81
      sprintf(MAD.data[i],"%1d",i);
 
82
    }
 
83
  MAD.data[6]= (char*)0;
 
84
  rep = MatrixDialogWindow();
 
85
  return(rep);
 
86
}
 
87