1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
/* Copyright (C) 1996,1997,1998,1999,2000 by Salvador E. Tropea (SET),
see copyrigh file for details */
#define Uses_TSHzGroup
#include <easydia1.h>
#include <tv.h>
#include <easydiag.h>
#include <stdarg.h>
TSHzGroup::~TSHzGroup()
{
delete Este;
delete Ant;
};
TSHzGroup::TSHzGroup(TSView *este, TSView *ant, int sep)
{
sepa=sep;
w=este->w+ant->w+sep;
h=max(este->h,ant->h);
Este=este;
Ant=ant;
view=Este->view; // Just in case somebody tries it.
}
void TSHzGroup::insert(TDialog *d)
{
Este->x=x;
Este->y=y;
Este->insert(d);
Ant->x=x+Este->w+sepa;
Ant->y=y;
Ant->insert(d);
}
void TSHzGroup::setWidth(int aW)
{
int cant=howManyHz();
int extra=aW-w;
if (extra<=0)
return;
w=aW;
int forFirst=(int)(((double)extra/cant)*Este->howManyHz()+0.5);
Este->setWidth(Este->w+forFirst);
Ant->setWidth(Ant->w+extra-forFirst);
}
int TSHzGroup::howManyHz()
{
return Este->howManyHz()+Ant->howManyHz();
}
void TSHzGroup::setGrowMode(unsigned val)
{
Este->setGrowMode(val);
Ant->setGrowMode(val);
}
TSHzGroup *MakeHzGroup(TSView *este, TSView *ant, ...)
{
TSHzGroup *ret;
TSView *cur;
va_list arg;
va_start(arg,ant);
ret=new TSHzGroup(este,ant);
while ((cur=va_arg(arg,TSView *))!=0)
{
ret=new TSHzGroup(ret,cur);
}
va_end(arg);
return ret;
}
TSHzGroup *MakeHzGroup(int sepa, TSView *este, TSView *ant, ...)
{
TSHzGroup *ret;
TSView *cur;
va_list arg;
va_start(arg,ant);
ret=new TSHzGroup(este,ant,sepa);
while ((cur=va_arg(arg,TSView *))!=0)
{
ret=new TSHzGroup(ret,cur,sepa);
}
va_end(arg);
return ret;
}
|