示例#1
0
DtSetModList::DtSetModList(AnyUI *parent,
		           char *name,
                           BaseUI *workarea,
			   ButtonCallback filterCB)
	: Dialog(parent, name)
{
   mainw = (DtMainW *) parent;
   _has_been_posted = false;
   _info = new LabelObj(this, MESSAGE(SelectPrintersToBeShowL));
   _container = new Container(this, "FilterList", SCROLLED_VERTICAL_ROW_COLUMN,
			      MULTIPLE_SELECT);
   _container->IconView(SMALL_ICON);
   _filterCB = filterCB;
   _workarea = (Container *) workarea;
   Container *form = new Container(this, "Form", FORM);

   _info->AttachRight();
   _info->AttachLeft();
   _info->AttachTop();
   form->AttachBottom();
   form->AttachRight();
   form->AttachLeft();
   _container->AttachBottom(form, 5);
   _container->AttachRight();
   _container->AttachLeft();
   _container->AttachTop(_info);
   select_all = new Button(form, MESSAGE(SelectAllL), PUSH_BUTTON, SelectAllCB,
			   _container);
   unselect_all = new Button(form, MESSAGE(DeselectAllL), PUSH_BUTTON,
			     UnSelectAllCB, _container);

   int i;
   IconObj **objs = (IconObj **) workarea->Children();
   for (i = 0; i < workarea->NumChildren(); i++)
    {
      if (objs[i]->UIClass() == ICON)
       {
         IconObj *icon = new IconObj(_container, (char *)objs[i]->Name(),
				     objs[i]->IconFile());
	 icon->ApplicationData = objs[i];
       }
    }

   ok = new Button(this, MESSAGE(OKL), PUSH_BUTTON, OkCB, this);
   apply = new Button(this, MESSAGE(ApplyL), PUSH_BUTTON, ApplyCB, this);
   cancel = new Button(this, MESSAGE(CancelL), PUSH_BUTTON, CancelCB, this);
   help = new Button(this, MESSAGE(HelpL), PUSH_BUTTON, HelpCB, this);
   DefaultButton(ok);
   CancelButton(cancel);
   Reset();
}