mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-29 21:05:12 +00:00
Forestall any complaints from our German neighbours...
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@5609 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
d3ca6ce55d
commit
44feb026ce
@ -1,3 +1,28 @@
|
|||||||
|
2002-11-08 Angus Leeming <aleem@pneumon.bg.ic.ac.uk>
|
||||||
|
|
||||||
|
* xforms_resize.[Ch]: sigh. Hack the "get scaling" part of
|
||||||
|
fl_adjust_form_size out of the xforms source and put it in here as
|
||||||
|
get_scaling_factor. Resizing and then unresizing to get this info
|
||||||
|
produces really nasty results...
|
||||||
|
|
||||||
|
I've put a request into the xforms list.
|
||||||
|
|
||||||
|
2002-11-08 Angus Leeming <aleem@pneumon.bg.ic.ac.uk>
|
||||||
|
|
||||||
|
* xforms_resize.[Ch]: replace scale_to_fit_tabs and scale_form with
|
||||||
|
get_scale_to_fit and scale_form_horizontally, respectively. The
|
||||||
|
functions are a total re-write, making use of the xforms library's
|
||||||
|
fl_adjust_form_size routine. We therefore get enormously simplified
|
||||||
|
code and consideration of /all/ button objects, not just those
|
||||||
|
tabs in tabfolders.
|
||||||
|
|
||||||
|
* FormBase.C (prepare_to_show):
|
||||||
|
* FormBaseDeprecated.C (prepare_to_show): use the renamed resize
|
||||||
|
functions to scale the dialog so that labels fit within buttons.
|
||||||
|
|
||||||
|
* FormBase.C (prepare_to_show): remove bc().refresh() call, as this
|
||||||
|
is done by the controller.
|
||||||
|
|
||||||
2002-11-07 Angus Leeming <leeming@lyx.org>
|
2002-11-07 Angus Leeming <leeming@lyx.org>
|
||||||
|
|
||||||
* forms/fdfixh.sed: generate the d-tors in a clean way.
|
* forms/fdfixh.sed: generate the d-tors in a clean way.
|
||||||
|
@ -21,6 +21,79 @@
|
|||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
|
/* This is hacked straight out of the xforms source.
|
||||||
|
It is fl_adjust_form_size without the last few lines that do the
|
||||||
|
adjusting.
|
||||||
|
*/
|
||||||
|
double get_scaling_factor(FL_FORM * form)
|
||||||
|
{
|
||||||
|
FL_OBJECT *ob;
|
||||||
|
float xfactor, yfactor, max_factor, factor;
|
||||||
|
int sw, sh, osize;
|
||||||
|
float xm = 0.5f, ym = 0.5f;
|
||||||
|
int bw;
|
||||||
|
|
||||||
|
// if (fl_no_connection)
|
||||||
|
// return 1.0f;
|
||||||
|
|
||||||
|
max_factor = factor = 1.0f;
|
||||||
|
for (ob = form->first; ob; ob = ob->next)
|
||||||
|
{
|
||||||
|
if ((ob->align == FL_ALIGN_CENTER || (ob->align & FL_ALIGN_INSIDE) ||
|
||||||
|
ob->objclass == FL_INPUT) &&
|
||||||
|
!ob->is_child && *(ob->label) && ob->label[0] != '@' &&
|
||||||
|
ob->boxtype != FL_NO_BOX &&
|
||||||
|
(ob->boxtype != FL_FLAT_BOX || ob->objclass == FL_MENU))
|
||||||
|
{
|
||||||
|
fl_get_string_dimension(ob->lstyle, ob->lsize, ob->label,
|
||||||
|
strlen(ob->label), &sw, &sh);
|
||||||
|
|
||||||
|
bw = (ob->boxtype == FL_UP_BOX || ob->boxtype == FL_DOWN_BOX) ?
|
||||||
|
FL_abs(ob->bw) : 1;
|
||||||
|
|
||||||
|
if (ob->objclass == FL_BUTTON &&
|
||||||
|
(ob->type == FL_RETURN_BUTTON || ob->type == FL_MENU_BUTTON))
|
||||||
|
sw += FL_min(0.6f * ob->h, 0.6f * ob->w) - 1;
|
||||||
|
|
||||||
|
if (ob->objclass == FL_BUTTON && ob->type == FL_LIGHTBUTTON)
|
||||||
|
sw += FL_LIGHTBUTTON_MINSIZE + 1;
|
||||||
|
|
||||||
|
if (sw <= (ob->w - 2 * (bw + xm)) && sh <= (ob->h - 2 * (bw + ym)))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if ((osize = ob->w - 2 * (bw + xm)) <= 0)
|
||||||
|
osize = 1;
|
||||||
|
xfactor = (float) sw / (float)osize;
|
||||||
|
|
||||||
|
if ((osize = ob->h - 2 * (bw + ym)) <= 0)
|
||||||
|
osize = 1;
|
||||||
|
yfactor = (float) sh / osize;
|
||||||
|
|
||||||
|
if (ob->objclass == FL_INPUT)
|
||||||
|
{
|
||||||
|
xfactor = 1.0f;
|
||||||
|
yfactor = (sh + 1.6f) / osize;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((factor = FL_max(xfactor, yfactor)) > max_factor)
|
||||||
|
{
|
||||||
|
max_factor = factor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (max_factor <= 1.0f)
|
||||||
|
return 1.0f;
|
||||||
|
|
||||||
|
max_factor = 0.01f * (int) (max_factor * 100.0f);
|
||||||
|
|
||||||
|
if (max_factor > 1.25f)
|
||||||
|
max_factor = 1.25f;
|
||||||
|
|
||||||
|
return max_factor;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// A nasty hack for older xforms versions
|
// A nasty hack for older xforms versions
|
||||||
int get_tabfolder_numfolders(FL_OBJECT * folder)
|
int get_tabfolder_numfolders(FL_OBJECT * folder)
|
||||||
{
|
{
|
||||||
@ -55,19 +128,6 @@ int get_tabfolder_numfolders(FL_OBJECT * folder)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
double get_scaling_factor(FL_FORM * form)
|
|
||||||
{
|
|
||||||
// fl_adjust_form_size gives us the info we desire but also resizes
|
|
||||||
// the form, which we don't want :-(
|
|
||||||
double factor = fl_adjust_form_size(form);
|
|
||||||
if (factor > 1.001) {
|
|
||||||
double const inv = 1.0 / factor;
|
|
||||||
fl_scale_form(form, inv, inv);
|
|
||||||
}
|
|
||||||
return factor;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
double get_tabfolder_scale_to_fit(FL_OBJECT * folder)
|
double get_tabfolder_scale_to_fit(FL_OBJECT * folder)
|
||||||
{
|
{
|
||||||
lyx::Assert(folder && folder->objclass == FL_TABFOLDER);
|
lyx::Assert(folder && folder->objclass == FL_TABFOLDER);
|
||||||
|
Loading…
Reference in New Issue
Block a user