//hit testing Widget_Part MCNativeTheme::hittestcombobutton(const MCWidgetInfo &winfo, int2 mx, int2 my, const MCRectangle &drect) { Widget_Part wpart = WTHEME_PART_UNDEFINED; const uint2 btnWidth = MCClamp(getmetric(WTHEME_METRIC_COMBOSIZE), 0, drect.width); uint2 t_text_width = drect.width - btnWidth; int2 t_btn_left = drect.x + t_text_width; MCRectangle btnRect = { t_btn_left, drect.y, btnWidth, drect.height }; MCRectangle txtRect = { drect.x, drect.y, t_text_width, drect.height }; if(MCU_point_in_rect(btnRect, mx, my)) wpart = WTHEME_PART_COMBOBUTTON; else if(MCU_point_in_rect(txtRect, mx, my)) wpart = WTHEME_PART_COMBOTEXT; return wpart; }
//hit testing Widget_Part MCNativeTheme::hittestcombobutton(const MCWidgetInfo &winfo, int2 mx, int2 my, const MCRectangle &drect) { Widget_Part wpart = WTHEME_PART_UNDEFINED; const int btnWidth = getmetric(WTHEME_METRIC_COMBOSIZE); MCRectangle btnRect = { drect.x + (drect.width - btnWidth), drect.y, btnWidth, drect.height }; MCRectangle txtRect = { drect.x, drect.y, drect.width - btnWidth, drect.height }; if(MCU_point_in_rect(btnRect, mx, my)) wpart = WTHEME_PART_COMBOBUTTON; else if(MCU_point_in_rect(txtRect, mx, my)) wpart = WTHEME_PART_COMBOTEXT; return wpart; }
int main(int argc, char **argv) { int ii=0, ncol=0, nrow=0, nl=0, nc=0, posi=0, posj=0, posk=0; //int nclust=atoi(argv[2]); MRI_IMAGE *im = NULL; double *dar = NULL; double **D = NULL; //int **mask = NULL; double** distmatrix = NULL; //from command.c int i = 1; char* filename = 0; char* jobname = 0; int l = 0; int k = 0; int kh = 3; int r = 1; int s = 0; int x = 2; int y = 1; int Rows, Columns; char distmetric = 'u'; char arraymetric = '\0'; char method = 'm'; char cg = '\0'; char ca = '\0'; int ng = 0; int na = 0; while (i < argc) { const char* const argument = argv[i]; i++; if (strlen(argument)<2) { printf("ERROR: missing argument\n"); return 0; } if (argument[0]!='-') { printf("ERROR: unknown argument\n"); return 0; } if(!strcmp(argument,"--version") || !strcmp(argument,"-v")) { display_version(); return 0; } if(!strcmp(argument,"--help") || !strcmp(argument,"-h")) { display_help(); return 0; } if(!strcmp(argument,"-cg")) { if (i==argc || strlen(argv[i])>1 || !strchr("am",argv[i][0])) { printf ("Error reading command line argument cg\n"); return 0; } cg = argv[i][0]; i++; continue; } if(!strcmp(argument,"-ca")) { if (i==argc || strlen(argv[i])>1 || !strchr("am",argv[i][0])) { printf ("Error reading command line argument ca\n"); return 0; } ca = argv[i][0]; i++; continue; } if(!strcmp(argument,"-ng")) { ng = 1; continue; } if(!strcmp(argument,"-na")) { na = 1; continue; } switch (argument[1]) { case 'l': l=1; break; case 'u': { if (i==argc) { printf ("Error reading command line argument u: " "no job name specified\n"); return 0; } jobname = setjobname(argv[i],0); i++; break; } case 'f': { if (i==argc) { printf ("Error reading command line argument f: " "no file name specified\n"); return 0; } filename = argv[i]; i++; break; } case 'g': { int g; if (i==argc) { printf ("Error reading command line argument g: parameter missing\n"); return 0; } g = readnumber(argv[i]); if (g < 0 || g > 9) { printf ("Error reading command line argument g: " "should be between 0 and 9 inclusive\n"); return 0; } i++; distmetric = getmetric(g); break; } case 'k': { if (i==argc) { printf ("Error reading command line argument k: " "parameter missing\n"); return 0; } k = readnumber(argv[i]); if (k < 1) { printf ("Error reading command line argument k: " "a positive integer is required\n"); return 0; } i++; break; } case 'c': { if (i==argc) { printf ("Error reading command line argument h: parameter missing\n"); return 0; } kh = readnumber(argv[i]); if (kh < 1) { printf ("Error reading command line argument h: a positive integer is required\n"); return 0; } i++; break; } case 'r': { if (i==argc) { printf ("Error reading command line argument r: parameter missing\n"); return 0; } r = readnumber(argv[i]); if (r < 1) { printf ("Error reading command line argument r: " "a positive integer is required\n"); return 0; } i++; break; } case 'm': { if (i==argc || strlen(argv[i])>1 || !strchr("msca",argv[i][0])) { printf ("Error reading command line argument m: should be 'm', 's', 'c', or 'a'\n"); return 0; } method = argv[i][0]; i++; break; } default: printf ("Unknown option\n"); } } if(jobname==0) jobname = setjobname(filename,1); /* else { display_help(); return 0; } */ if (argc < 2) { display_help(); return 0; } //printf("num of clusters %d \n",nclust); fprintf(stderr,"Patience, reading %s...\n ", filename); im = mri_read_double_1D (filename); /* ZIAD I get this warning Aclustering.c:408: warning: passing argument 1 of mri_read_double_1D discards qualifiers from pointer target type Andrej: filename was declared as (const char *), but the function expects (char *) */ if (!im) { fprintf(stderr,"Error: Failed to read matrix data from %s\n", argv[2]); return(-1); } ncol = im->ny; nrow = im->nx; fprintf (stderr,"Have %d cols, %d rows\nNow...\n", ncol, nrow); /* now just get the array and kill the rest */ dar = MRI_DOUBLE_PTR(im); /* make sure that pointer is set to NULL in im, or risk hell */ mri_clear_data_pointer(im); if (im) mri_free(im); im = NULL; /* now kill im */ /* for double loop*/ D = (double **)calloc(sizeof(double*), nrow-1); for (ii=0;ii<(nrow-1);++ii) { D[ii] = (double *)calloc(sizeof(double), ncol-1); } for (nl=1; nl<nrow; ++nl) { for (nc=1; nc<ncol; ++nc) { D[nl-1][nc-1] = dar[nl+nc*nrow]; } //fprintf(stdout,"\n"); } //show_data(nrows, ncols, data, mask); //example_mean_median(nrows, ncols, data, mask); //distmatrix = example_distance_gene(nrows, ncols, data, mask); //if (distmatrix) example_hierarchical(nrows, ncols, data, mask, distmatrix); //example_distance_array(nrows, ncols, data, mask); if(k>0) example_kmeans(nrow-1, ncol-1, D, k, r, distmetric, jobname); else { distmatrix = example_distance_gene(nrow-1, ncol-1, D); // ZIAD: goes2 SIGKILL error if (distmatrix) example_hierarchical(nrow-1, ncol-1, D, jobname, kh, distmatrix); } free(dar); dar = NULL; /* done with input array */ // To free D for (ii=0;ii<(nrow-1);++ii) { if (D[ii]) free(D[ii]); } free(D); free(jobname); //free(); fprintf (stderr,"\n"); return 0; }