Initial import of the CDE 2.1.30 sources from the Open Group.
This commit is contained in:
637
cde/programs/dtprintinfo/UI/DtFindD.C
Normal file
637
cde/programs/dtprintinfo/UI/DtFindD.C
Normal file
@@ -0,0 +1,637 @@
|
||||
/* $TOG: DtFindD.C /main/5 1998/07/24 16:12:13 mgreess $ */
|
||||
/* *
|
||||
* (c) Copyright 1993, 1994 Hewlett-Packard Company *
|
||||
* (c) Copyright 1993, 1994 International Business Machines Corp. *
|
||||
* (c) Copyright 1993, 1994 Sun Microsystems, Inc. *
|
||||
* (c) Copyright 1993, 1994 Novell, Inc. *
|
||||
*/
|
||||
|
||||
#include "DtFindD.h"
|
||||
#include "DtMainW.h"
|
||||
#include "DtApp.h"
|
||||
#include "DtSetModList.h"
|
||||
#include "DtWorkArea.h"
|
||||
#include "Button.h"
|
||||
#include "Prompt.h"
|
||||
#include "LabelObj.h"
|
||||
#include "Container.h"
|
||||
#include "Sep.h"
|
||||
#include "DtPrtJobIcon.h"
|
||||
|
||||
#include "dtprintinfomsg.h"
|
||||
|
||||
#include <unistd.h> // This is for the getuid function
|
||||
|
||||
DtJobList::DtJobList(AnyUI *parent)
|
||||
: Container(parent, "found_container", SCROLLED_VERTICAL_ROW_COLUMN,
|
||||
MULTIPLE_SELECT)
|
||||
{
|
||||
IconView(SMALL_ICON);
|
||||
}
|
||||
|
||||
class _JobIcon : public IconObj
|
||||
{
|
||||
public:
|
||||
DtPrtJobIcon *job_icon;
|
||||
BaseUI *printer;
|
||||
BaseUI *job_list;
|
||||
|
||||
_JobIcon(AnyUI *parent, DtPrtJobIcon *obj, IconFields);
|
||||
};
|
||||
|
||||
_JobIcon::_JobIcon(AnyUI *parent, DtPrtJobIcon *obj, IconFields fields)
|
||||
: IconObj(parent, (char *)obj->Name(), "DtPrtjb", NULL, NULL, NULL,
|
||||
fields)
|
||||
{
|
||||
job_icon = obj;
|
||||
job_list = obj->Parent();
|
||||
printer = job_list->Parent();
|
||||
}
|
||||
|
||||
void DtJobList::NotifySelected(BaseUI *obj)
|
||||
{
|
||||
Container::NotifySelected(obj);
|
||||
|
||||
int n_items;
|
||||
Selection(&n_items);
|
||||
DtFindD *findD = (DtFindD *) Parent();
|
||||
if (n_items == 0)
|
||||
{
|
||||
findD->cancel_jobs->Active(false);
|
||||
findD->goto_job->Active(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (n_items == 1)
|
||||
findD->goto_job->Active(true);
|
||||
else
|
||||
findD->goto_job->Active(false);
|
||||
findD->cancel_jobs->Active(true);
|
||||
}
|
||||
}
|
||||
|
||||
DtFindD::DtFindD(MotifUI *parent,
|
||||
char *name,
|
||||
SelectProc select_proc)
|
||||
: Dialog(parent, name)
|
||||
{
|
||||
_has_been_posted = false;
|
||||
|
||||
mainw = (DtMainW *) parent;
|
||||
_select_proc = select_proc;
|
||||
if (getuid() == 0) // check to see if we are root
|
||||
prompt = new Prompt(this, MESSAGE(JobName1L));
|
||||
else
|
||||
prompt = new Prompt(this, MESSAGE(MyJobNameL));
|
||||
prompt->AttachRight();
|
||||
prompt->AttachLeft();
|
||||
prompt->AttachTop();
|
||||
|
||||
Container *rc = new Container(this, "rc", HORIZONTAL_ROW_COLUMN,
|
||||
MULTIPLE_SELECT);
|
||||
if (getuid() == 0) // check to see if we are root
|
||||
match_any_user = new Button(rc, MESSAGE(OnlyRootJobsL), TOGGLE_BUTTON);
|
||||
else
|
||||
match_any_user = NULL;
|
||||
ignore_case = new Button(rc, MESSAGE(IgnoreCaseL), TOGGLE_BUTTON);
|
||||
ignore_case->Selected(true);
|
||||
exact_match = new Button(rc, MESSAGE(ExactMatchL), TOGGLE_BUTTON);
|
||||
rc->AttachRight();
|
||||
rc->AttachTop(prompt, 5);
|
||||
|
||||
Sep *sep = new Sep(this);
|
||||
sep->AttachRight();
|
||||
sep->AttachLeft();
|
||||
|
||||
sep->AttachTop(rc, 5);
|
||||
|
||||
field1 = new LabelObj(this, MESSAGE(JobName1L));
|
||||
field1->AttachLeft(22);
|
||||
field1->AttachTop(sep, 5);
|
||||
field2 = new LabelObj(this, MESSAGE(PrinterL));
|
||||
field2->AttachLeft(field1);
|
||||
field2->AttachTop(sep, 5);
|
||||
field3 = new LabelObj(this, MESSAGE(OwnerL));
|
||||
field3->AttachLeft(field2);
|
||||
field3->AttachTop(sep, 5);
|
||||
field3->Visible(false);
|
||||
field4 = new LabelObj(this, MESSAGE(PositionL));
|
||||
field4->AttachLeft(field2);
|
||||
field4->AttachRight();
|
||||
field4->AttachTop(sep, 5);
|
||||
|
||||
Container *form = new Container(this, "form", FORM);
|
||||
goto_job = new Button(form, MESSAGE(GotoL), PUSH_BUTTON, GotoCB, this);
|
||||
goto_job->Active(false);
|
||||
cancel_jobs = new Button(form, MESSAGE(CancelPrintJobsL), PUSH_BUTTON,
|
||||
CancelJobsCB, this);
|
||||
cancel_jobs->Active(false);
|
||||
form->AttachBottom(5);
|
||||
form->AttachRight();
|
||||
form->AttachLeft();
|
||||
goto_job->AttachBottom();
|
||||
goto_job->AttachTop();
|
||||
cancel_jobs->AttachBottom();
|
||||
cancel_jobs->AttachTop();
|
||||
|
||||
found_container = new DtJobList(this);
|
||||
found_container->AttachRight();
|
||||
found_container->AttachLeft();
|
||||
found_container->AttachBottom(form, 10);
|
||||
found_container->AttachTop(field1);
|
||||
|
||||
start = new Button(this, MESSAGE(StartFindL), PUSH_BUTTON, StartCB, this);
|
||||
stop = new Button(this, MESSAGE(StopFindL), PUSH_BUTTON, StopCB, this);
|
||||
close_it = new Button(this, MESSAGE(CloseL), PUSH_BUTTON, CancelCB, this);
|
||||
stop->Active(false);
|
||||
help = new Button(this, MESSAGE(HelpL), PUSH_BUTTON, HelpCB, this);
|
||||
|
||||
DefaultButton(start);
|
||||
CancelButton(close_it);
|
||||
}
|
||||
|
||||
DtFindD::~DtFindD()
|
||||
{
|
||||
// Empty
|
||||
}
|
||||
|
||||
boolean DtFindD::SetVisiblity(boolean flag)
|
||||
{
|
||||
if (_has_been_posted == false)
|
||||
{
|
||||
Dialog::SetVisiblity(flag);
|
||||
Refresh();
|
||||
int width = StringWidth(Name()) + 30;
|
||||
if (width < 400)
|
||||
width = 400;
|
||||
if (Width() < width)
|
||||
Width(width);
|
||||
_has_been_posted = true;
|
||||
int w1 = cancel_jobs->Width();
|
||||
int w2 = goto_job->Width();
|
||||
int offset = (width - (w1 + w2)) / 3;
|
||||
goto_job->AttachLeft(offset);
|
||||
cancel_jobs->AttachRight(offset);
|
||||
cancel_jobs->AttachLeft(NULL, 0);
|
||||
}
|
||||
found_container->DeleteChildren();
|
||||
cancel_jobs->Active(false);
|
||||
goto_job->Active(false);
|
||||
if (match_any_user)
|
||||
{
|
||||
match_any_user->Selected(false);
|
||||
match_any_user->Active(mainw->setPrefD->ShowOnlyMyJobs() ? false : true);
|
||||
}
|
||||
Dialog::SetVisiblity(flag);
|
||||
if (flag)
|
||||
prompt->SetFocus();
|
||||
return true;
|
||||
}
|
||||
|
||||
void DtFindD::UpdateMatchAnyUser()
|
||||
{
|
||||
if (match_any_user)
|
||||
match_any_user->Active(mainw->setPrefD->ShowOnlyMyJobs() ? false : true);
|
||||
}
|
||||
|
||||
boolean DtFindD::MatchAnyUser()
|
||||
{
|
||||
if (match_any_user)
|
||||
{
|
||||
if (match_any_user->Active() == false)
|
||||
return false;
|
||||
else
|
||||
return (match_any_user->Selected() ? false : true);
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
void DtFindD::Start()
|
||||
{
|
||||
_working = true;
|
||||
mainw->in_find = true;
|
||||
mainw->WorkingCursor(true);
|
||||
stop->PointerShape(LEFT_SLANTED_ARROW_CURSOR);
|
||||
help->PointerShape(LEFT_SLANTED_ARROW_CURSOR);
|
||||
stop->Active(true);
|
||||
DefaultButton(stop);
|
||||
close_it->Active(false);
|
||||
start->Active(false);
|
||||
prompt->Active(false);
|
||||
ignore_case->Active(false);
|
||||
exact_match->Active(false);
|
||||
found_container->DeleteChildren();
|
||||
cancel_jobs->Active(false);
|
||||
goto_job->Active(false);
|
||||
if (match_any_user)
|
||||
match_any_user->Active(false);
|
||||
found_container->BeginUpdate();
|
||||
|
||||
_cur_obj = 0;
|
||||
if (mainw->container->NumChildren())
|
||||
{
|
||||
BaseUI *icon = mainw->container->Children()[0];
|
||||
_prev_visible = icon->Visible();
|
||||
_prev_opened = icon->Open();
|
||||
}
|
||||
AddTimeOut(CheckQueue, NULL, 200);
|
||||
}
|
||||
|
||||
void DtFindD::Cancel()
|
||||
{
|
||||
Visible(false);
|
||||
Stop();
|
||||
}
|
||||
|
||||
void DtFindD::Stop()
|
||||
{
|
||||
if (_cur_obj > mainw->container->NumChildren())
|
||||
return;
|
||||
_cur_obj = mainw->container->NumChildren() + 1;
|
||||
found_container->EndUpdate();
|
||||
start->Active(true);
|
||||
DefaultButton(start);
|
||||
stop->Active(false);
|
||||
close_it->Active(true);
|
||||
prompt->Active(true);
|
||||
ignore_case->Active(true);
|
||||
exact_match->Active(true);
|
||||
prompt->SetFocus();
|
||||
if (mainw->setModList && mainw->setModList->Visible())
|
||||
mainw->setModList->Reset();
|
||||
if (match_any_user)
|
||||
match_any_user->Active(mainw->setPrefD->ShowOnlyMyJobs() ? false : true);
|
||||
if (Visible())
|
||||
{
|
||||
int n_matches;
|
||||
BaseUI **matches;
|
||||
char *value1 = NULL;
|
||||
char *value = prompt->Value();
|
||||
if (!value || *value == '\0')
|
||||
value = ".*";
|
||||
else if (*value == '*')
|
||||
{
|
||||
value1 = new char[strlen(value) + 2];
|
||||
sprintf(value1, ".%s", value);
|
||||
value = value1;
|
||||
}
|
||||
mainw->container->FindByName(value, 0, &n_matches, &matches,
|
||||
_select_proc,
|
||||
exact_match->Selected() ? false : true,
|
||||
ignore_case->Selected() ? false : true);
|
||||
delete [] value1;
|
||||
if (n_matches)
|
||||
{
|
||||
IconFields fields = new IconFieldsRec;
|
||||
int n_fields, i, w;
|
||||
|
||||
if (MatchAnyUser())
|
||||
n_fields = 3;
|
||||
else
|
||||
n_fields = 2;
|
||||
fields->n_fields = n_fields;
|
||||
fields->field_spacing = 20;
|
||||
fields->fields = new char *[n_fields];
|
||||
fields->fields_widths = new int[n_fields];
|
||||
fields->alignments = new LabelType[n_fields];
|
||||
fields->draw_fields = NULL;
|
||||
fields->selected = NULL;
|
||||
fields->active = NULL;
|
||||
|
||||
fields->name_width = StringWidth(MESSAGE(JobName1L));
|
||||
fields->fields_widths[0] = StringWidth(MESSAGE(PrinterL));
|
||||
fields->alignments[0] = LEFT_JUSTIFIED;
|
||||
if (n_fields == 3)
|
||||
{
|
||||
fields->fields_widths[1] = StringWidth(MESSAGE(OwnerL));
|
||||
fields->fields_widths[2] = StringWidth(MESSAGE(PositionL));
|
||||
fields->alignments[1] = LEFT_JUSTIFIED;
|
||||
fields->alignments[2] = RIGHT_JUSTIFIED;
|
||||
if (field3->Visible() == false)
|
||||
{
|
||||
field3->Visible(true);
|
||||
field4->AttachLeft(field3);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
fields->alignments[1] = RIGHT_JUSTIFIED;
|
||||
fields->fields_widths[1] = StringWidth(MESSAGE(PositionL));
|
||||
if (field4->Visible())
|
||||
{
|
||||
field4->AttachLeft(field2);
|
||||
field3->Visible(false);
|
||||
}
|
||||
}
|
||||
for (i = 0; i < n_matches; i++)
|
||||
{
|
||||
DtPrtJobIcon *job = (DtPrtJobIcon *)matches[i];
|
||||
if ((w = StringWidth(job->Name())) > fields->name_width)
|
||||
fields->name_width = w;
|
||||
w = StringWidth(job->Parent()->Parent()->Name());
|
||||
if (w > fields->fields_widths[0])
|
||||
fields->fields_widths[0] = w;
|
||||
if (n_fields == 3)
|
||||
{
|
||||
char *s = job->PrintJobObj()->AttributeValue((char *)OWNER);
|
||||
if ((w = StringWidth(s)) > fields->fields_widths[1])
|
||||
fields->fields_widths[1] = w;
|
||||
}
|
||||
}
|
||||
if (fields->name_width % 2)
|
||||
fields->name_width += 1;
|
||||
|
||||
if (fields->fields_widths[0] % 2)
|
||||
fields->fields_widths[0] += 1;
|
||||
|
||||
if (n_fields == 3)
|
||||
{
|
||||
if (fields->fields_widths[1] % 2)
|
||||
fields->fields_widths[1] += 1;
|
||||
if (fields->fields_widths[2] % 2)
|
||||
fields->fields_widths[2] += 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (fields->fields_widths[1] % 2)
|
||||
fields->fields_widths[1] += 1;
|
||||
}
|
||||
|
||||
field1->Width(fields->name_width + 20);
|
||||
field2->Width(fields->fields_widths[0] + 20);
|
||||
field3->Width(fields->fields_widths[1] + 20);
|
||||
if (n_fields == 3)
|
||||
field4->Width(fields->fields_widths[2] + 20);
|
||||
|
||||
for (i = 0; i < n_matches; i++)
|
||||
{
|
||||
DtPrtJobIcon *job = (DtPrtJobIcon *)matches[i];
|
||||
char number[9];
|
||||
sprintf(number, "%d", job->Order() + 1);
|
||||
fields->fields[0] = (char *)job->Parent()->Parent()->Name();
|
||||
if (n_fields == 3)
|
||||
{
|
||||
char *s = job->PrintJobObj()->AttributeValue((char *)OWNER);
|
||||
fields->fields[1] = s;
|
||||
fields->fields[2] = number;
|
||||
}
|
||||
else
|
||||
fields->fields[1] = number;
|
||||
_JobIcon *icon = new _JobIcon(found_container, job, fields);
|
||||
}
|
||||
delete []matches;
|
||||
delete fields->fields;
|
||||
delete fields->fields_widths;
|
||||
delete fields->alignments;
|
||||
delete fields;
|
||||
}
|
||||
else
|
||||
new LabelObj(found_container, MESSAGE(NoMatchesL));
|
||||
}
|
||||
mainw->WorkingCursor(false);
|
||||
_working = false;
|
||||
mainw->in_find = false;
|
||||
}
|
||||
|
||||
void DtFindD::UpdateQueue()
|
||||
{
|
||||
if (_cur_obj < mainw->container->NumChildren())
|
||||
{
|
||||
BaseUI *icon = mainw->container->Children()[_cur_obj];
|
||||
char *message = new char[200];
|
||||
sprintf(message, MESSAGE(SearchL), icon->Name());
|
||||
found_container->UpdateMessage(message);
|
||||
delete [] message;
|
||||
icon->Visible(true);
|
||||
DtPrinterIcon *icon1 = (DtPrinterIcon *)icon;
|
||||
icon1->waitForChildren = true;
|
||||
icon1->Open(true);
|
||||
icon1->waitForChildren = false;
|
||||
boolean no_children;
|
||||
if (icon1->QueueObj()->NumChildren() == 0)
|
||||
no_children = true;
|
||||
else
|
||||
{
|
||||
int n_matches;
|
||||
char *value1 = NULL;
|
||||
char *value = prompt->Value();
|
||||
if (!value || *value == '\0')
|
||||
value = ".*";
|
||||
else if (*value == '*')
|
||||
{
|
||||
value1 = new char[strlen(value) + 2];
|
||||
sprintf(value1, ".%s", value);
|
||||
value = value1;
|
||||
}
|
||||
icon1->FindByName(value, 0, &n_matches, NULL, _select_proc,
|
||||
exact_match->Selected() ? false : true,
|
||||
ignore_case->Selected() ? false : true);
|
||||
delete value1;
|
||||
if (n_matches)
|
||||
no_children = false;
|
||||
else
|
||||
no_children = true;
|
||||
}
|
||||
if (no_children)
|
||||
{
|
||||
if (_prev_visible == false)
|
||||
icon->Visible(false);
|
||||
if (_prev_opened == false)
|
||||
icon->Open(false);
|
||||
}
|
||||
_cur_obj++;
|
||||
if (_cur_obj < mainw->container->NumChildren())
|
||||
{
|
||||
icon = mainw->container->Children()[_cur_obj];
|
||||
_prev_visible = icon->Visible();
|
||||
_prev_opened = icon->Open();
|
||||
}
|
||||
AddTimeOut(CheckQueue, NULL, 200);
|
||||
}
|
||||
else if (_cur_obj == mainw->container->NumChildren())
|
||||
Stop();
|
||||
}
|
||||
|
||||
boolean DtFindD::HandleHelpRequest()
|
||||
{
|
||||
mainw->DisplayHelp("FindDialogDE");
|
||||
return true;
|
||||
}
|
||||
|
||||
void DtFindD::CheckQueue(BaseUI *obj, void *)
|
||||
{
|
||||
((DtFindD *)obj)->UpdateQueue();
|
||||
}
|
||||
|
||||
BaseUI *DtFindD::FindJob(BaseUI *obj)
|
||||
{
|
||||
int i;
|
||||
BaseUI *job = ((_JobIcon *)obj)->job_icon;
|
||||
BaseUI **children = ((_JobIcon *)obj)->job_list->Children();
|
||||
int n_children = ((_JobIcon *)obj)->job_list->NumChildren();
|
||||
for (i = 0; i < n_children; i++)
|
||||
if (job == children[i])
|
||||
return children[i];
|
||||
Dialog *dialog = new Dialog(mainw, (char *) Name(),
|
||||
MESSAGE(NotFoundMessageL), INFORMATION,
|
||||
MESSAGE(OKL));
|
||||
dialog->Visible(true);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void DtFindD::GotoCB(void *data)
|
||||
{
|
||||
DtFindD *obj = (DtFindD *) data;
|
||||
BaseUI **selection;
|
||||
int n_items;
|
||||
obj->found_container->Selection(&n_items, &selection);
|
||||
if (n_items == 1)
|
||||
{
|
||||
BaseUI *print_job = obj->FindJob(selection[0]);
|
||||
if (print_job)
|
||||
{
|
||||
print_job->MakeVisible();
|
||||
print_job->Selected(true);
|
||||
}
|
||||
}
|
||||
delete []selection;
|
||||
}
|
||||
|
||||
void DtFindD::CancelJobsCB(void *data)
|
||||
{
|
||||
DtFindD *obj = (DtFindD *) data;
|
||||
extern void ActionCB(void *data, BaseUI *obj, char *actionReferenceName);
|
||||
|
||||
BaseUI **selection;
|
||||
int n_items;
|
||||
obj->found_container->Selection(&n_items, &selection);
|
||||
if (n_items)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < n_items; i++)
|
||||
{
|
||||
BaseUI *print_job = obj->FindJob(selection[i]);
|
||||
if (print_job)
|
||||
{
|
||||
DtApp *app = (DtApp *)obj->mainw->Parent();
|
||||
app->ActionCB(print_job, (char *)CANCEL_PRINT_JOB);
|
||||
}
|
||||
}
|
||||
}
|
||||
delete []selection;
|
||||
}
|
||||
|
||||
void DtFindD::CloseCB()
|
||||
{
|
||||
Cancel();
|
||||
}
|
||||
|
||||
void DtFindD::CancelCB(void *data)
|
||||
{
|
||||
DtFindD *obj = (DtFindD *) data;
|
||||
obj->Cancel();
|
||||
}
|
||||
|
||||
void DtFindD::StartCB(void *data)
|
||||
{
|
||||
DtFindD *obj = (DtFindD *) data;
|
||||
obj->Start();
|
||||
}
|
||||
|
||||
void DtFindD::StopCB(void *data)
|
||||
{
|
||||
DtFindD *obj = (DtFindD *) data;
|
||||
obj->_cur_obj = obj->mainw->container->NumChildren();
|
||||
}
|
||||
|
||||
void DtFindD::HelpCB(void *data)
|
||||
{
|
||||
DtFindD *obj = (DtFindD *) data;
|
||||
obj->HandleHelpRequest();
|
||||
}
|
||||
|
||||
void DtFindD::DeleteJobFromList(BaseUI *obj)
|
||||
{
|
||||
int i;
|
||||
int n_children = found_container->NumChildren();
|
||||
_JobIcon **children = (_JobIcon **)found_container->Children();
|
||||
for (i = 0; i < n_children; i++)
|
||||
{
|
||||
if (obj->Parent() == children[i]->job_list)
|
||||
{
|
||||
if (children[i]->job_icon == obj)
|
||||
{
|
||||
children[i]->Selected(false);
|
||||
delete children[i];
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DtFindD::UpdatePrinter(BaseUI *printer)
|
||||
{
|
||||
int n_children = found_container->NumChildren();
|
||||
if (n_children == 0)
|
||||
return;
|
||||
|
||||
_JobIcon **children = (_JobIcon **)found_container->Children();
|
||||
int i, w1;
|
||||
int width = StringWidth(MESSAGE(PrinterL));
|
||||
BaseUI *last_printer = NULL;
|
||||
for (i = 0; i < n_children; i++)
|
||||
{
|
||||
if (last_printer != children[i]->printer)
|
||||
{
|
||||
last_printer = children[i]->printer;
|
||||
if ((w1 = StringWidth(last_printer->Name())) > width)
|
||||
width = w1;
|
||||
}
|
||||
}
|
||||
if (width % 2)
|
||||
width += 1;
|
||||
|
||||
// Create a widget and resize it to the desired width, then resize the
|
||||
// row column to the width + margin space. I have to do this because
|
||||
// the row column widget does not resize itself correctly.
|
||||
Dimension wid;
|
||||
XtVaGetValues(found_container->InnerWidget(), XmNwidth, &wid, NULL);
|
||||
wid -= field2->Width();
|
||||
wid += width;
|
||||
new LabelObj(found_container, " ");
|
||||
children = (_JobIcon **)found_container->Children();
|
||||
children[n_children]->Order(0);
|
||||
n_children++;
|
||||
children[0]->Width((int)wid);
|
||||
wid += 6;
|
||||
XtVaSetValues(found_container->InnerWidget(), XmNwidth, (int)wid, NULL);
|
||||
|
||||
field2->Width(width + 20);
|
||||
for (i = 1; i < n_children; i++)
|
||||
{
|
||||
if (printer == children[i]->printer)
|
||||
children[i]->Field(0, (char *)printer->Name(), width);
|
||||
else
|
||||
children[i]->Field(0, NULL, width);
|
||||
}
|
||||
delete children[0];
|
||||
}
|
||||
|
||||
void DtFindD::UpdatePositions(BaseUI *printer)
|
||||
{
|
||||
if (mainw->in_find)
|
||||
return;
|
||||
|
||||
int n_children = found_container->NumChildren();
|
||||
if (n_children == 0)
|
||||
return;
|
||||
|
||||
_JobIcon **children = (_JobIcon **)found_container->Children();
|
||||
int i, index = children[0]->NumberFields() - 1;
|
||||
for (i = 0; i < n_children; i++)
|
||||
{
|
||||
if (printer == children[i]->printer)
|
||||
children[i]->Field(index, children[i]->job_icon->TopString(), 0);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user