EZ
Up Prev Next Contents


3.4.3 An Example

In this example, we use a FancyList box to list the files in the current directory. Each entry consists of 5 items. The items are color encoded.

/**************************** ExampleFLB ******************************/
#include "EZ.h"

main(int ac, char **av)
{
  char       str[256];
  FILE       *fp;
  EZ_Item    *items[10];
  EZ_Widget  *flistbox;
  int i;
  
  EZ_Initialize(ac, av, 0);

  flistbox = EZ_CreateWidget(EZ_WIDGET_FANCY_LIST_BOX, NULL,
			     EZ_FANCY_LIST_BOX_COLUMNS, 5,
			     EZ_WIDTH, 400, EZ_HEIGHT, 500,
			     EZ_IPADY, 2, 
			     EZ_SELECTION_FOREGROUND, "black",
			     0);			     

  fp = popen("ls -alg | awk '{print $9 \" \" $3 \" \" $4 \" \" $5 \" \" $1}'", "r");
  if(fp)
    {
      char fields[6][32];
      while(fgets(str, 255, fp) != NULL)
        {
          if(sscanf(str, "%s %s %s %s %s",fields[0],fields[1],fields[2],fields[3],fields[4]) == 5)
            {
              for(i = 0; i < 5; i++)
                {
                  items[i] = EZ_CreateLabelItem(fields[i], NULL);
                  EZ_ConfigureItem(items[i], EZ_BORDER_TYPE, EZ_BORDER_RAISED, EZ_BORDER_WIDTH, 1,0);

                  switch(i)
                    {
                    case 0:  EZ_ConfigureItem(items[i], EZ_FOREGROUND, "red",EZ_PADX, 4,0); 
                      if(fields[4][0] == 'd') EZ_ConfigureItem(items[i], EZ_PIXMAP_FILE, "folder.xpm", 0);
                      else  EZ_ConfigureItem(items[i], EZ_PIXMAP_FILE, "file.xpm",0);
                      break;
                    case 1:  EZ_ConfigureItem(items[i], EZ_FOREGROUND, "blue",0); break;
                    case 2:  EZ_ConfigureItem(items[i], EZ_FOREGROUND, "yellow",0); break;
                    case 3:  EZ_ConfigureItem(items[i], EZ_FOREGROUND, "cyan",0); break;
                    case 4:  EZ_ConfigureItem(items[i], EZ_FOREGROUND, "magenta",0); break;
                    default: break;
                    }
                }
              EZ_FancyListBoxInsertRow(flistbox, items, 5, -1); /* at the end */
            }
        }
      /* a header */
      items[0] = EZ_CreateLabelItem("File/Dir Name", NULL);
      items[1] = EZ_CreateLabelItem("User Name", NULL);
      items[2] = EZ_CreateLabelItem("Group Name", NULL);
      items[3] = EZ_CreateLabelItem("File Size ", NULL);
      items[4] = EZ_CreateLabelItem("Permissions", NULL);
      for(i = 0; i < 5; i++)
        {
          switch(i)
            {
            case 0:  EZ_ConfigureItem(items[i], EZ_FOREGROUND, "red",0); break;
            case 1:  EZ_ConfigureItem(items[i], EZ_FOREGROUND, "blue",0); break;
            case 2:  EZ_ConfigureItem(items[i], EZ_FOREGROUND, "yellow",0); break;
            case 3:  EZ_ConfigureItem(items[i], EZ_FOREGROUND, "cyan",0); break;
            case 4:  EZ_ConfigureItem(items[i], EZ_FOREGROUND, "magenta",0); break;
            default: break;
            }
          EZ_ConfigureItem(items[i], EZ_BORDER_WIDTH,2,EZ_BORDER_TYPE, EZ_BORDER_RAISED,
                           EZ_BACKGROUND, "bisque2", EZ_PADY, 2,
                           EZ_LABEL_POSITION, EZ_LEFT, 0);
         }
      EZ_SetFancyListBoxHeader(flistbox, items, 5);
    }
  pclose(fp);
  EZ_DisplayWidget(flistbox);
  EZ_EventMainLoop();
}


HTML Documentation Maintainance:Arturo Espinosa <arturo@nuclecu.unam.mx>